You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker运行时无法替换Dockerfile中ENV值的问题排查

问题分析与解决办法

嘿,我来帮你排查这个问题!你遇到的情况主要有两个关键点需要修正:

1. docker run 的参数位置错误

Docker 命令的语法是 docker run [OPTIONS] IMAGE [COMMAND] [ARG...],所有像 --env 这类配置选项必须放在镜像名称之前。你现在把 --env 放在了镜像名 example 后面,这会被当成传递给容器内部 Entrypoint 的额外参数,而不是 Docker 用来设置环境变量的选项——这就导致你的 foo=Hallo Welt 根本没被 Docker 识别,容器自然还是用镜像里预设的 dev 值。

正确的运行命令应该是:

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

2. run.sh 的 Shell 兼容性问题

你的基础镜像是 busybox,它默认只包含轻量级的 sh,没有完整的 bash。而你写的 run.sh 开头是 #!/bin/bash,这会导致容器执行脚本时找不到对应的 Shell(虽然你用 /bin/sh 去执行脚本能临时绕开这个问题,但不够稳妥)。建议把脚本的 shebang 改成:

#!/bin/sh

验证效果

按上面的修改后,重新构建镜像(如果调整了 run.sh 的话),再执行正确的 docker run 命令,就能看到输出 Hallo Welt xyz 啦!

内容的提问来源于stack exchange,提问作者arnerossmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 20:22:44