【问题标题】:How to I confirm environment variable sent to docker run command is received?如何确认收到发送到 docker run 命令的环境变量?
【发布时间】: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"
]

我相信这很简单。我错过了什么?

【问题讨论】:

标签: docker environment-variables dockerfile


【解决方案1】:

将您的运行命令更改为docker run -e MY_ENV=test temp

我在本地对此进行了测试,它似乎将其视为一个参数,而不是一个选项(所以忽略它)

【讨论】:

  • 哇,捂脸!我以为我要疯了,谢谢!
猜你喜欢
  • 2016-09-08
  • 2022-08-16
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-18
  • 1970-01-01
相关资源
最近更新 更多