--build-arg를 사용한 여러 인수의 도커 빌드
문서에 따르면 플래그에 대해 여러 개의 인수를 정의할 수 있습니다.--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_delin=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의 답변이 맞으며, 제가 추가하고 싶은 유일한 것은 당신이 접근할 수 없다면 도커 파일 내의 ARG를 예상하는 것입니다.그래서 만약 당신이 하고 있다면.
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 --build-arg number_of_replicas=2 --no-cache .
그런 다음 도커 파일 안에 추가해야 합니다.
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가 필요하다는 것은 유감스러운 일이지만, 그로 인해 여러 개의 레이어가 생성되고 빌드 속도가 느려집니다. 또한 이를 궁금해하는 사람들은 현재 한 줄당 여러 개의 ARG를 설정할 방법이 없습니다.
특정 파일에서 자동으로 빌드 인수를 전달하려는 경우 다음 방법으로 전달할 수 있습니다.
docker build $(cat .my-env-file-name | while read line; do out+="--build-arg $line"; done; echo $out; out="") .
다음을 사용하여 파일에서 빌드 인수를 전달하는 방법xargs
는 다음과 같습니다.
cat .MY_ENV_FILE | xargs printf -- '--build-arg %s\n' | xargs docker build -t MY_TAG .
언급URL : https://stackoverflow.com/questions/42297387/docker-build-with-build-arg-with-multiple-arguments
'programing' 카테고리의 다른 글
How to download a file from AJAX request in Liferay serveResource(-, -) method (0) | 2023.07.31 |
---|---|
Python에는 패키지/모듈 관리 시스템이 있습니까? (0) | 2023.07.31 |
RecyclerView를 사용하여 수평 목록 뷰를 작성하는 방법 (0) | 2023.07.31 |
Docker 명령을 Docker 데몬에 연결할 수 없습니다. (0) | 2023.07.31 |
Android SDK 빌드 도구, 플랫폼 도구 및 도구는 무엇입니까?그리고 어떤 버전을 사용해야 합니까? (0) | 2023.07.31 |