Dockerfile - 如何在 Dockerfile 中声明一个可以在多个 运行 指令中使用的变量?

Dockerfile - How can I declare a variable in a Dockerfile that I can use in multiple RUN instructions?

我正在写一个 Dockerfile。我想要一个可以传递给不同 PowerShell 脚本的变量。

FROM mcr.microsoft.com/windows/servercore/iis
ENV CONT_IMG_VER test
RUN echo $CONT_IMG_VER

产出

Step 4/4 : RUN echo $CONT_IMG_VER
 ---> Running in 70c2085d9735
$CONT_IMG_VER

而不是

Step 4/4 : RUN echo $CONT_IMG_VER
 ---> Running in 70c2085d9735
test

更新:根据 Dockerfile reference 看起来 运行 不支持 ENV。

如何在 Dockerfile 中声明一个可以在多个 运行 指令中使用的变量?

将 ENV 变量传递给脚本的一种方法是让 powershell 脚本引用您在 docker 容器中配置的 ENV 变量。

例如。如果您尝试注入以下 ENV 变量,请在您的 docker 文件中

ENV CONT_IMG_VER=test

让您的 powershell 脚本通过执行 get-childitem

来拉取该变量
(get-childitem ENV:CONT_IMG_VER).value

或引用 powershell env 项目。

$env:CONT_IMG_VER