在运行时替换Dockerfile的环境值

在运行时替换Dockerfile的环境值,docker,environment-variables,Docker,Environment Variables,我也有类似的问题。我的Dockerfile FROM busybox ENV foo dev ENV bar xyz COPY run.sh / ENTRYPOINT ["/bin/sh", "/run.sh"] run.sh文件: #!/bin/bash echo $foo $bar 构建之后,我运行:docker运行示例--env“foo=Hallo Welt”但是我得到了输出:dev xyz 所以docker并没有替换我的环境值。我做错了

我也有类似的问题。我的Dockerfile

FROM busybox

ENV foo dev
ENV bar xyz

COPY run.sh /

ENTRYPOINT ["/bin/sh", "/run.sh"]
run.sh文件:

#!/bin/bash

echo $foo $bar
构建之后,我运行:
docker运行示例--env“foo=Hallo Welt”
但是我得到了输出:
dev xyz


所以docker并没有替换我的环境值。我做错了什么?

图像名称之后指定的所有参数都被视为容器的输入参数,而不是Docker的标志

在命令末尾移动图像的名称:

$ docker run --env "foo=Hallo Welt" example
Hallo Welt xyz

图像名称之后指定的所有参数都被视为容器的输入参数,而不是Docker的标志

在命令末尾移动图像的名称:

$ docker run --env "foo=Hallo Welt" example
Hallo Welt xyz
您需要将
--env
放在图像名称
示例
之前。(尝试向脚本中添加
echo命令行参数:“$@”
,看看会发生什么。)您需要将
--env
放在图像名称
示例之前。(尝试向脚本中添加
echo命令行参数:“$@”
,看看会发生什么。)