在容器启动时从Docker上的共享卷复制文件并创建符号链接

时间:2016-12-07 15:50:32

标签: docker dockerfile supervisord

我有一个容器在运行时挂载共享卷,我需要从这个卷安装到另一个卷的位置复制一些文件并创建一个符号链接。

我尝试了几种方法,最后我使用了主管。所以我创建了一个简单的bash脚本,其中cp和ln我需要从Docker容器上安装卷的位置到docker容器内的最终目标。但主管失败了。

这是我的主管conf文件:

[supervisord]
nodaemon=true

[program:nonversioned]
command=/deploy.sh
numprocs=1
autostart=true
autorestart=true
exitcodes=1

这是我的deploy.sh

的一个例子
#!/usr/bin/env bash

# Copy config files
cp -f /efs/deploys/wp-config.php /var/www/html

# Softlink to uploads
ln -s /efs/deploys/uploads /var/www/html/assets/uploads

在我的Dockerfile中也尝试了几个启动supervisor的东西。最后我正在尝试:

CMD ["supervisord -n"]

但是它说监督不在路径中

我正在用:

开始我的容器
docker run -d 
        -v /home/user/my_efs:/efs \
        mytest/testing

1 个答案:

答案 0 :(得分:1)

您需要单独指定命令和参数,例如

CMD ["supervisord", "-n"]

它可能仍然无法在路径中找到supervisord。在这种情况下,只需指定完整路径:

CMD ["/usr/bin/supervisord", "-n"]