maintainer - dockerfile volume example




帶有--build-arg和多個參數的docker build (3)

上面pl_rock的答案是正確的,我唯一要添加的就是期望Dockerfile中的ARG,否則您將無法訪問它。 所以如果你在做

docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 --build-arg number_of_replicas=2 --no-cache .

然後在Dockerfile中,您應該添加

ARG number_of_replicas
ARG number_of_shards

我遇到了這個問題,因此希望以後能對某人(自己)有所幫助。

根據 documentation ,可以為 --build-arg 標誌定義多個args,但我不知道如何。 我嘗試了以下方法:

docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 number_of_replicas=2 --no-cache .

=>這將返回錯誤。

我也嘗試過:

docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5,number_of_replicas=2 --no-cache .

=>這會將一個變量 number_of_shards 設置為值“ 5,number_of_replicas = 2”

知道如何定義多個參數嗎?


如果要在構建過程中使用環境變量。 可以說設置用戶名和密碼。

username= Ubuntu
password= swed24sw

Dockerfile

FROM ubuntu:16.04
ARG SMB_PASS
ARG SMB_USER
# Creates a new User
RUN useradd -ms /bin/bash $SMB_USER
# Enters the password twice.
RUN echo "$SMB_PASS\n$SMB_PASS" | smbpasswd -a $SMB_USER

終端命令

docker build --build-arg SMB_PASS=swed24sw --build-arg SMB_USER=Ubuntu . -t IMAGE_TAG


很可惜我們也需要多個ARG,這會導致多層,並因此降低構建速度,對於任何人也想知道的是,目前 無法 設置多個ARG。





arguments