gpt4 book ai didi

docker - RUN 命令中的 ARG 替换不适用于 Dockerfile

转载 作者:IT老高 更新时间:2023-10-28 12:43:00 26 4
gpt4 key购买 nike

在我的 Dockerfile 中,我有以下内容:

ARG a-version
RUN wget -q -O /tmp/alle.tar.gz http://someserver/server/$a-version/a-server-$a-version.tar.gz && \
mkdir /opt/apps/$a-version

但是,当使用以下方法构建它时:

--build-arg http_proxy=http://myproxy","--build-arg a-version=a","--build-arg b-version=b"

Step 10/15 : RUN wget... 在路径中显示 $a-version 而不是替换值,构建失败。

我已按照 here 显示的说明进行操作但一定是遗漏了其他东西。

My questions is, what could be causing this issue and how can i solve it?

最佳答案

要注意的另一件事是,在每个 FROM 语句之后,所有 ARG 都会被收集并且不再可用。小心多阶段构建。

您可以在 FROM 中重用省略默认值的 ARG 来解决这个问题:

ARG VERSION=latest
FROM busybox:$VERSION
ARG VERSION
RUN echo $VERSION > image_version

来自文档的示例: https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact

关于docker - RUN 命令中的 ARG 替换不适用于 Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com