小编Tar*_*wla的帖子

Dockerfile ENV 变量替换为另一个 ENV 变量

我正在学习 Docker 并面临将一个 env 变量的值替换为另一个 env 变量的问题。

这是我的 Dockerfile

FROM ubuntu

ENV var_env=Tarun

ENV command="echo Hello $var_env"

CMD ["sh","-c","echo Hello $var_env"]

Run Code Online (Sandbox Code Playgroud)

现在,在使用标签名称“exp”构建它之后,然后

sudo docker run -e  "var_env=New Env Value" exp
Run Code Online (Sandbox Code Playgroud)

它给了我正确的输出

Hello New Env Value
Run Code Online (Sandbox Code Playgroud)

但是,如果我看到通过执行关联的环境变量

sudo docker run -e  "var_env=New Env Value" exp env
Run Code Online (Sandbox Code Playgroud)

它给了我这个输出:

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
Run Code Online (Sandbox Code Playgroud)

其中,var_env环境变量的值被改变,而command环境变量的值保持不变。

我需要找到一种方法,以便如果我var_env通过上述命令更改环境变量的值,它也会更新var_env环境变量中的环境变量的值command

供参考:https : //docs.docker.com/engine/reference/builder/#environment-replacement

docker dockerfile

8
推荐指数
1
解决办法
2870
查看次数

标签 统计

docker ×1

dockerfile ×1