如何确认发送到docker run命令的环境variables是否被接收?
我遇到了一个问题,我将一个环境variables传递给docker run
命令,但生成的容器使用默认值而不是传递的值。
这是我的Dockerfile:
FROM alpine ENV MY_ENV="default value" ENTRYPOINT echo "MY_ENV: " $MY_ENV
以下是我构build和运行时发生的情况:
$ 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
正如你所看到的,输出是“默认值”,但我不希望看到“testing”?
如果我运行docker inspect
容器,它显示input已收到。
下面是configuration下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 run -e MY_ENV=test temp
。
我在本地进行了testing,似乎将其视为一个参数,而不是一个选项(所以忽略它)
- Docker中的Laravel没有识别环境variables
- 如果设置了variables,如何configurationdocker组合使用给定的子网,或者如果不是,select自己?
- 将variables从容器开始传递到文件
- Docker撰写不识别'env_file'
- 将Docker的TLS选项设置为环境variables
- 如何在Dockerfile中设置一个variablesENV以便在Docker容器中重写?
- 将所有主机环境variables传递给Docker容器的最简单的方法
- PHP-docker容器中的环境variables
- 如何在docker的subprocesssupervisord环境中使用nodejs参数