Docker构build时间参数
我有一堆Dockerfiles是使用相同的构build命令从一个公共的自动化的地方构build的:
docker build -t $name:$tag --build-arg BRANCH=$branch .
一些Dockerfiles包含这个:
ARG BRANCH=master
这个参数被用于图像构build的一些步骤。
但是对于一些不需要这个参数的Dockerfiles,最后我得到这个错误:
One or more build-args [BRANCH] were not consumed, failing build.
我怎样才能克服这个问题,而不包括所有的Dockerfiles参数?
你有没有考虑greer你的Dockerfile的BRANCH,并用它来决定是否应该提供你的ARG?
你可以用你的自动构build触发器来代替:
if grep BRANCH Dockerfile; then docker build -t $name:$tag --build-arg BRANCH=$branch .; else docker build -t $name:$tag . ; fi
我没有看到任何logging的方式来避免这个错误,而不改变你的input或Dockerfile。 robertobado已经涵盖改变你的input。 作为第二个选项,您可以在Dockerfile的末尾包含一个有效的未使用的构build参数,这对您的构build影响很小。
ARG BRANCH=undefined RUN echo "Built from branch ${BRANCH}"
由于这不会修改文件系统,我相信图像校验和将是相同的。