2016-10-26 5 views
5

소스 태그를 매개 변수로 전달하려는 Docker 컨테이너를 작성하려고합니다.Docker - 소스 파일에 Arg 빌드

빌드 스크립트 :

docker build \ 
    --pull=true \ 
    ... 
    --build-arg version=${version} 

Dockerfile :

ARG version 

FROM registry/repo:${version} 

이 실행이 prior to commit에서 나에게 오류 Please provide a source image with을 제공합니다.

빌드 인수로 가져 와서 사용하는 버전을 전달할 수있는 방법이 있습니까? 나는 고정 표시기 버전 1.12

+0

_ "커밋하기 전부터 소스 이미지를 제공하십시오"_는 Dockerfile에서'ARG'를 사용하기 전에'FORM'을 사용해야 함을 의미합니다. – Marcs

+0

내 대답이 애쉬 위니에게 도움이 되었습니까? – johnharris85

+0

@ johnharris85 : 어쨌든. –

답변

8

According to the docs에있어 첫 번째 명령은 FROM (또는 기술적으로 파서 지시하지만, 여기에 관련이없는) 그래서이 방법을 가능성이 작동하지 않을 수 있어야합니다. 일부 sed 명령 또는 뭔가 올바른 버전을 삽입하거나 어떤 종류의 템플릿을 사용하여 docker build... 주위에 아마 일부 껍질 래퍼.

Gareth Rushgrove had a nice talk at DockerCon16 재미있는 이미지 제작 도구입니다.

업데이트 (7/2/17) : now possible to achieve since v17.06입니다.

+0

변경되었습니다. 이후 변경되었습니다. https://github.com/moby/moby/pull/31352 – synhershko

+0

처럼 ARG가 올 수 있습니다. https://docs.docker.com/engine/reference/ builder/# understand-how-arg-and-interact 상호 작용 – dtothefp

+1

실제로 Docker v17.05부터 사용 가능합니다. https://github.com/moby/moby/pull/31352 – Shane

관련 문제