【发布时间】:2018-04-15 08:20:20
【问题描述】:
我遇到了一个问题,我将环境变量传递给 docker run 命令,但生成的容器使用的是默认值而不是传递的值。
这是我的 Dockerfile:
FROM alpine
ENV MY_ENV="default value"
ENTRYPOINT echo "MY_ENV: " $MY_ENV
以下是我构建和运行它时发生的情况:
$ docker build -t temp .
Sending build context to Docker daemon 54.78kB
Step 1/3 : FROM alpine
---> 37eec16f1872
Step 2/3 : ENV MY_ENV "default value"
---> Using cache
---> 8ba6d797b765
Step 3/3 : ENTRYPOINT echo "MY_ENV: " $MY_ENV
---> Using cache
---> 6fb9530b10b2
Successfully built 6fb9530b10b2
Successfully tagged temp:latest
$ docker run temp -e MY_ENV=test
MY_ENV: default value
如您所见,输出是“默认值”,但我不应该期望看到“测试”吗?
如果我对容器运行docker inspect,则表明已收到输入。
这是来自 Config 下 docker inspect 的 Env 和 Cmd 值:
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"MY_ENV=default value"
],
"Cmd": [
"-e",
"MY_ENV=test"
]
我相信这很简单。我错过了什么?
【问题讨论】:
-
一个类似的问题在答案中有预期的结果:stackoverflow.com/questions/40334751/…
标签: docker environment-variables dockerfile