在容器中运行shell脚本

我使用lemonlatte / docker-webvirtmgr作为基础文件,但问题是没有为用户www-dataconfigurationssh密钥,所以我写了下面的shell脚本:

#!/bin/sh if [ ! -d "/var/local/webvirtmgr/nginxhome" ]; then mkdir /var/local/webvirtmgr/nginxhome chown -R www-data:www-data /var/local/webvirtmgr/nginxhome usermod -d /var/local/webvirtmgr/nginxhome www-data su - www-data -s /bin/bash -c "ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N ''" su - www-data -s /bin/bash -c "touch /var/local/webvirtmgr/nginxhome/.ssh/config && echo -e 'StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null' >> /var/local/webvirtmgr/nginxhome/.ssh/config" su - www-data -s /bin/bash -c "chmod 0600 ~/.ssh/config" fi 

之后,我将两条语句添加到了dockerfile中:

 ADD setupssh.sh /webvirtmgr/setupssh.sh RUN /bin/sh -c "/webvirtmgr/setupssh.sh" 

我已经尝试CMD /webvirtmgr/setupssh.sh,运行/webvirtmgr/setupssh.sh,但没有成功…

当我手动运行容器内的脚本时,它工作正常。

这里有什么问题?

问候

更新:这里是维护者的回购链接 : 链接

更新2: dockerfile的构build是成功的,我把声明之间:

 RUN apt-get -ys clean <statements were here> WORKDIR / 

目录/var/local/webvirtmgr被定义为一个

  VOLUME /var/local/webvirtmgr 

因此,此目录是正在运行的容器中的一个安装 ,您添加到它的内容将被覆盖。

你将不得不使用不同的目录,那么你的脚本将工作。

这里有一个Dockerfile来testing它:

 FROM lemonlatte/docker-webvirtmgr RUN mkdir /var/local/webvirtmgr2 RUN touch /var/local/webvirtmgr2/t && touch /var/local/webvirtmgr/t RUN ls -la //var/local/webvirtmgr RUN ls -la /var/local/webvirtmgr2 

输出:

 Sending build context to Docker daemon 4.608 kB Sending build context to Docker daemon Step 0 : FROM lemonlatte/docker-webvirtmgr ---> 18e2839dffea Step 1 : RUN mkdir /var/local/webvirtmgr2 ---> Running in d7a1e897108e ---> cc029293525e Removing intermediate container d7a1e897108e Step 2 : RUN touch /var/local/webvirtmgr2/t && touch /var/local/webvirtmgr/t ---> Running in 1a1375651fa7 ---> e314c2529d90 Removing intermediate container 1a1375651fa7 Step 3 : RUN ls -la //var/local/webvirtmgr ---> Running in 5228691c84f5 total 8 drwxr-xr-x 2 www-data www-data 4096 Jun 6 09:22 . drwxr-xr-x 6 root root 4096 Jun 6 09:22 .. ---> ec4113936961 Removing intermediate container 5228691c84f5 Step 4 : RUN ls -la /var/local/webvirtmgr2 ---> Running in a6d2a683391a total 8 drwxr-xr-x 2 root root 4096 Jun 6 09:22 . drwxr-xr-x 6 root root 4096 Jun 6 09:22 .. -rw-r--r-- 1 root root 0 Jun 6 09:22 t ---> 3cb98c5c1baf Removing intermediate container a6d2a683391a Successfully built 3cb98c5c1baf