【发布时间】:2019-10-21 07:18:52
【问题描述】:
我正在学习 Docker,并面临将一个环境变量的值替换为另一个环境变量的问题。
这是我的 Dockerfile
FROM ubuntu
ENV var_env=Tarun
ENV command="echo Hello $var_env"
CMD ["sh","-c","echo Hello $var_env"]
现在,在使用标签名称“exp”构建它之后,然后
sudo docker run -e "var_env=New Env Value" exp
它给了我正确的输出
Hello New Env Value
但是,如果我看到执行相关的环境变量
sudo docker run -e "var_env=New Env Value" exp env
它给了我这个输出:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=138aa8852d8d
var_env=New Env Value
command=echo Hello Tarun
HOME=/root
其中var_env环境变量的值改变了,command环境变量的值保持不变。
我需要找到一种方法,如果我通过上述命令更改var_env 环境变量的值,它也会更新command 环境变量中的var_env 环境变量的值。
供参考:https://docs.docker.com/engine/reference/builder/#environment-replacement
【问题讨论】:
-
这就是我所期望的 - 您在环境变量中设置了一个 值,而不是某种函数。
-
如果答案解决了您的问题,请接受它或提供其他信息以进一步调试手头的问题。如果您已经找到解决方案,请将其发布并接受以与社区分享
标签: docker dockerfile