문서 에 따르면 플래그에 대해 여러 개의 인수를 정의 할 --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
나는이 문제에 부딪 쳤으므로 앞으로 누군가 (나 자신)를 도울 수 있기를 바랍니다.
답변
빌드 중에 환경 변수를 사용하려는 경우 사용자 이름과 비밀번호를 설정한다고 말합니다.
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
답변
그것은 때문에 그 빌드 아래 여러 계층과 감속을 초래하고, 또한 궁금 누군가를 위해, 현재, 우리는 너무 여러 ARG가 필요하다고 부끄러운 방법이 없습니다 여러 인수를 설정하는가.