这是我的DockerFile,它具有默认的EN,如果指定,我想在容器部署时覆盖它。
ENV domain example.com
CMD ["cd","/etc/httpd/conf.d/"]
CMD [ "cp", "VirtualHost", "${domain}" ]
docker run -it -e domain="test.com" container_id
最佳答案
您不能有两个CMD
行,第二个将简单地覆盖第一个。但是对于您而言,我认为您想使用WORKDIR
命令设置目录,而不是CMD
例如:
WORKDIR /etc/httpd/conf.d/
cp
命令将触发,并且一旦完成,容器将退出。如果您覆盖CMD
以获取 shell 程序(例如,使用docker run -it mycontainer bash
),则将永远不会执行cp
命令。
https://stackoverflow.com/questions/34345203/