我们能在Docker文件的COPY命令中使用本地环境变量吗?

12

我可以在 Dockerfile 中的源代码部分使用主机环境变量吗?

例如:我有一个环境变量 MY_HOME = /abc/def

我能在 Dockerfile 中使用以下内容吗?

COPY ${MY_HOME}/xyz.conf /ams/config/xyz.conf

2
你实际尝试过使用它吗?如果你能解释一下你的问题,那会更好。 - Mostafa Hussein
有点相关:https://dev59.com/N1cQ5IYBdhLWcg3wA_LH - Jens
1个回答

1
你可以使用环境变量,例如 RUN echo $HOME > /home.txt。但是请注意,在COPY命令中,你只能使用位于构建上下文中的文件。

docker build 命令从Dockerfile和“上下文”构建Docker镜像。构建的上下文是指定路径或URL中的文件集。构建过程可以引用上下文中的任何文件。例如,你的构建可以使用COPY指令引用上下文中的文件。


1
那么我不能使用构建环境变量生成文件名吗?例如 COPY my-file-${VERSION} .。看起来即使文件在构建上下文中存在(如果 VERSION=foo,则为 my-file-foo),该变量也不会被扩展(文档)... - Jens
1
我说得太早了,请参见此评论——ARG的作用域限定在构建阶段,因此请确保ARG VERSION=foo在您_当前_的阶段中可用! - Jens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接