Docker传递环境variables
这里是我的DockerFile,它有一个默认的EN,如果指定,我想重载容器部署。
ENV domain example.com CMD ["cd","/etc/httpd/conf.d/"] CMD [ "cp", "VirtualHost", "${domain}" ]
但是,当使用-e命令传递EN时
docker run -it -e domain="test.com" container_id
我能够login到容器,echo $域,它显示已通过的EV,但复制命令没有复制文件。
任何想法,我可能做错了什么?
谢谢
你不能有两个CMD
线,第二个将简单地覆盖第一个。 但在你的情况,我想你想使用WORKDIR
命令来设置目录,而不是CMD
例如:
WORKDIR /etc/httpd/conf.d/
这应该设置当前目录下的所有说明和容器的启动。
顺便说一声我不知道你是如何login到这个容器 – 当你运行它时, cp
命令将会触发,一旦完成,容器将退出。 如果你重写CMD
来获得shell(例如docker run -it mycontainer bash
), cp
命令将永远不会被执行。