小编Mar*_*ter的帖子

Docker 环境替换与环境变量替换

我正在尝试在 Dockerfile 中使用环境变量替换,并与 docker 中的环境变量替换配对,但看起来变量替换发生在替换之后。

以下 Dockerfile:

FROM alpine:3.7

ENV name="World"
ENV message="Hello, ${name}"

ENTRYPOINT ["env"]
Run Code Online (Sandbox Code Playgroud)

使用 Docker 运行命令:

$ docker run -it --rm -e "name=Marvin" envtest/helloworld
Run Code Online (Sandbox Code Playgroud)

打印以下环境变量:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=49d702faf257
TERM=xterm
name=Marvin
message=Hello, World
HOME=/root
Run Code Online (Sandbox Code Playgroud)

您可以看到,即使我替换了 name 变量,消息变量仍然被name中的原始值替换。

有谁知道如何使用docker环境变量替换来进行环境变量替换?

编辑:我在 Docker 论坛中发现一条评论,指出环境变量在构建时解释,但可以在运行时一一替换。所以该文档有点误导。

environment-variables docker

3
推荐指数
1
解决办法
5361
查看次数

标签 统计

docker ×1

environment-variables ×1