我有一堆Dockerfile,它们是使用相同的build命令从一个常见的自动化位置构建的:
docker build -t $name:$tag --build-arg BRANCH=$branch .一些Dockerfile包含以下内容:
ARG BRANCH=master该参数用于映像构建的某些步骤。
但是对于一些不需要这个参数的Dockerfile,我最后会得到这个错误:
One or more build-args [BRANCH] were not consumed, failing build.如果不将参数包含到所有Dockerfile中,我如何克服这个问题?
发布于 2016-09-07 04:14:48
您是否考虑过为分支添加Dockerfile,并使用它的结果来决定是否应该提供ARG?
您可以使用以下内容替换您的自动化构建触发器:
if grep BRANCH Dockerfile; then docker build -t $name:$tag --build-arg BRANCH=$branch .; else docker build -t $name:$tag . ; fi
发布于 2016-09-07 04:33:22
如果不更改您的输入或Dockerfile,我看不到任何有文档记录的方法来避免此错误。robertobado已经涵盖了改变你的输入。作为第二种选择,您可以在Dockerfile的末尾包含一个有效未使用的构建参数,这将对您的构建产生非常小的影响。
ARG BRANCH=undefined
RUN echo "Built from branch ${BRANCH}"由于这不会修改文件系统,因此我相信映像校验和将是相同的。
https://stackoverflow.com/questions/39352615
复制相似问题