将参数嵌套在docker build命令的--build-arg中

时间:2018-01-23 10:06:34

标签: docker dockerfile

让我们从示例开始。 我有一个简单的Dockerfile:

ARG arg1
ARG arg2
RUN echo "$arg1 $arg2"

我在调用命令时的期望

docker build --build-arg arg1=abc --build-arg arg2=${arg1} .

我得到的是 abc abc ,但是我得到了 abc 。 那么我想要的结果是什么?我怎样才能实现它?

1 个答案:

答案 0 :(得分:1)

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

应该给你你想要的东西。