docker build
동안 빌드 인수를 필수로 만들 수있는 방법이 있습니까? 예상 된 동작은 인수가없는 경우 빌드가 실패하는 것입니다. 다음 Dockerfile에 대한 예를 들어Docker 빌드시 빌드 인수를 필수로 만드는 방법은 무엇입니까?
: 나는 docker build -t my-tag .
로 구축 할 때 ARG MY_VARIABLE
에 실패하고 docker build -t my-tag --build-arg MY_VARIABLE=my_value .
로 구축 할 때 전달하는 빌드를 원하는
FROM ubuntu
ARG MY_VARIABLE
ENV MY_VARIABLE $MY_VARIABLE
RUN ...
.
해당 동작을 수행 할 수있는 방법이 있습니까? 필자의 경우 기본값을 설정해도 실제로 트릭을 수행하지는 않습니다.
(. 내가 darwin/amd64
에 도커 1.11.1
을 실행하는거야)
편집 : 나는 MY_VARIABLE
가 비어있을 때 실패 명령, 예를 들어, 실행하는 것입니다 생각할 수있는 일을 한 가지 방법 :
FROM ubuntu
ARG MY_VARIABLE
RUN test -n "$MY_VARIABLE"
ENV MY_VARIABLE $MY_VARIABLE
RUN ...
하지만이 문제에 대한 매우 관용적 인 해결책은 아닌 것 같습니다. 당신은 이런 일을 할 수
arg가 전달되지 않으면 실패합니다 약간 이상한 것입니다 정의되지 않은 하지만 다른 방법은 아니지만, 그것이 작동하는 방식 인 것 같습니다. dockerfile에서 "test.sh"스크립트를 실행하여 단계의 범위를 확인하고 적절히 처리 할 수 있습니다. 복잡성에 따라 별도의 파일로 관리하는 것이 더 쉬울 수도 있습니다. 단지 하나 또는 두 개의 ARG 일 경우 인라인 방법이 실제로 최고 일 수 있습니다. – ldg