programing tip

여러 인수를 가진 --build-arg로 docker build

itbloger 2020. 6. 14. 11:01
반응형

여러 인수를 가진 --build-arg로 docker build


문서 에 따르면 플래그에 대해 여러 개의 인수를 정의 할 --build-arg수 있지만 방법을 찾을 수는 없습니다. 나는 다음을 시도했다.

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"값으로 설정합니다

여러 인수를 어떻게 정의 할 수 있습니까?


--build-arg각 인수와 함께 사용하십시오 .

두 개의 인수를 전달하는 경우 다음 --build-arg과 같이 각 인수 를 추가하십시오 .

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

pl_rock의 위의 대답은 정확합니다. 추가 할 유일한 것은 Dockerfile에 ARG가 없을 경우 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

나는이 문제에 부딪 쳤으므로 앞으로 누군가 (나 자신)를 돕기를 바랍니다.


여러 ARG도 필요하다는 것은 부끄러운 일이며, 여러 레이어를 생성하고 그로 인해 빌드 속도가 느려지 며, 현재 여러 ARG를 설정할 방법이 없다고 궁금한 사람은 누구나 알고 있습니다.


빌드 중에 환경 변수를 사용하려는 경우 사용자 이름과 비밀번호를 설정한다고 말합니다.

username= Ubuntu
password= swed24sw

도커 파일

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

참고 URL : https://stackoverflow.com/questions/42297387/docker-build-with-build-arg-with-multiple-arguments

반응형