小编Ted*_*ddy的帖子

在 Dockerfile 中使用变量

我正在尝试在 Dockerfile 中使用变量。我不明白为什么 $MyVariable 永远不会被该值替换。

\n

我使用以下方法构建图像:

\n
docker build --build-arg PYTHON_VERSION=python-3.8.8.amd64 -t succeeds .\n
Run 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\n
Run Code Online (Sandbox Code Playgroud)\n

shell分别打印:

\n
$PYTHON_VERSION\n${PYTHON_VERSION}\nPYTHON_VERSION\n
Run Code Online (Sandbox Code Playgroud)\n

文档建议:

\n
\n

在 FROM 之前声明的 ARG 位于构建阶段之外,因此它可以\xe2\x80\x99t\n用在 FROM 之后的任何指令中。要使用在第一个 FROM 之前声明的 ARG 的默认值,请使用在构建阶段内不带值的 ARG 指令:

\n
ARG VERSION=latest FROM\n$VERSION \nARG VERSION \nRUN echo $VERSION > image_version \n
Run Code Online (Sandbox Code Playgroud)\n
\n

但我显然没有得到相同的结果。我应该在 docker 命令中添加一些内容来使用变量吗?

\n

variables docker dockerfile

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

标签 统计

docker ×1

dockerfile ×1

variables ×1