让我们从例子开始。
我有一个简单的Dockerfile:
ARG arg1
ARG arg2
RUN echo "$arg1 $arg2"
以及我调用命令时的期望
docker build --build-arg arg1=abc --build-arg arg2=${arg1} .
是我得到了 abc abc 作为首发,但是我得到了 abc 。
那我想要的结果可能吗?我该如何实现呢?
最佳答案
用Dockerfile
执行此操作
FROM alpine
ARG arg1
ARG arg2
RUN
echo "$arg1 ${arg2:-$arg1}"
您现在可以这样称呼它:
docker build --build-arg arg1=abc --build-arg arg2= .
输出:
...truncated...
Step 4/4 : RUN echo "$arg1 ${arg2:-$arg1}"
---> Running in e65458b9ba6e
abc abc
或像这样:
docker build --build-arg arg1=abc --build-arg arg2=override .
输出:
...truncated...
Step 4/4 : RUN echo "$arg1 ${arg2:-$arg1}"
---> Running in e65458b9ba6e
abc override
(旧答案)
根据您提供的少量信息。我会说:
arg1=abc; docker build --build-arg arg1=$arg1 --build-arg arg2=$arg1
应该给你你想要的。
关于docker - 在docker build命令的--build-arg中嵌套参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48398983/