我在docker repo自动构建上添加了一些环境设置,可以说, WEBSERVER_PRIVATE_KEY=123
在我的Dockerfile中,当我在本地构建时,我认为它将获取env值
RUN echo $WEBSERVER_PRIVATE_KEY > /somewhere/key
Run Code Online (Sandbox Code Playgroud)
但这没有用。
我看了一下ENV命令,但似乎没有办法注入该值。
我看了一下ARG命令,但是它需要传递,--build-arg因为我怀疑它是否可以在基于docker repo的构建过程中工作。
在自动构建期间,请参阅以下docker repo上的环境设置,如何使Dockerfile引用WEBSERVER_PRIVATE_KEY设置中的。
您可以在选择性环境变量上执行此操作,但需要将传递给它们,--build-arg并配置Dockerfile以接收它们。当您不--build-arg为变量提供值或环境变量docker run -e在运行时提供值时,Docker将使用您的环境来设置值。
这是一个使用build-args的示例Dockerfile:
FROM busybox
ARG DOCKER_HOST=${DOCKER_HOST:-""}
ENV DOCKER_HOST=${DOCKER_HOST}
CMD echo "DOCKER_HOST is ${DOCKER_HOST}"
Run Code Online (Sandbox Code Playgroud)
如果进行构建和传递--build-arg DOCKER_HOST,则docker将在您的环境中设置该变量:
$ echo $DOCKER_HOST
127.0.0.1:2376
$ docker build --build-arg DOCKER_HOST -t test-env:latest .
...
Successfully built 088fabdd9a96
$ docker run test-env
DOCKER_HOST is 127.0.0.1:2376
Run Code Online (Sandbox Code Playgroud)
如果不使用arg进行构建,则不会传递该环境变量:
$ docker build -t test-env:latest .
...
Successfully built ef31d886749b
$ docker run test-env
DOCKER_HOST is
Run Code Online (Sandbox Code Playgroud)
但是,您仍然可以在环境中从以下位置手动传递它docker run -e DOCKER_HOST:
$ docker run -e DOCKER_HOST test-env
DOCKER_HOST is 127.0.0.1:2376
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3432 次 |
| 最近记录: |