gpt4 book ai didi

docker - Docker传递环境变量

转载 作者:行者123 更新时间:2023-12-02 19:41:46 24 4
gpt4 key购买 nike

这是我的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

我能够登录到容器,回显$ domain,它显示已传递的EV,但是copy命令没有复制文件。

关于我可能做错了什么的任何想法?

谢谢

最佳答案

您不能有两个CMD行,第二个将简单地覆盖第一个。但是对于您而言,我认为您想使用WORKDIR命令设置目录,而不是CMD例如:

WORKDIR /etc/httpd/conf.d/

这应该为所有以下说明和容器启动设置当前目录。

顺便说一句,我不确定您如何登录该容器-运行它时, cp命令将触发,并且一旦完成,容器将退出。如果您覆盖 CMD以获取 shell 程序(例如,使用 docker run -it mycontainer bash),则将永远不会执行 cp命令。

关于docker - Docker传递环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34345203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com