我正在尝试在 Dockerfile 中使用变量。我不明白为什么 $MyVariable 永远不会被该值替换。
\n我使用以下方法构建图像:
\ndocker build --build-arg PYTHON_VERSION=python-3.8.8.amd64 -t succeeds .\nRun Code Online (Sandbox Code Playgroud)\n在我的 dockerfile 中,我有以下代码:
\n# escape=`\nFROM mcr.microsoft.com/windows/servercore:1909\nARG PYTHON_VERSION=python-3.8.1.amd64\nENV PYTHON=C:\\$PYTHON_VERSION\n\nRUN echo $PYTHON_VERSION\nRUN echo ${PYTHON_VERSION}\nRUN echo PYTHON_VERSION\nRun Code Online (Sandbox Code Playgroud)\nshell分别打印:
\n$PYTHON_VERSION\n${PYTHON_VERSION}\nPYTHON_VERSION\nRun Code Online (Sandbox Code Playgroud)\n文档建议:
\n\n\n在 FROM 之前声明的 ARG 位于构建阶段之外,因此它可以\xe2\x80\x99t\n用在 FROM 之后的任何指令中。要使用在第一个 FROM 之前声明的 ARG 的默认值,请使用在构建阶段内不带值的 ARG 指令:
\nRun Code Online (Sandbox Code Playgroud)\nARG VERSION=latest FROM\n$VERSION \nARG VERSION \nRUN echo $VERSION > image_version \n
但我显然没有得到相同的结果。我应该在 docker 命令中添加一些内容来使用变量吗?
\n