–env文件的build-arg的等价物?
我正在使用多个构build参数构buildDocker镜像,并想知道是否可以将它们作为文件传递给Docker构build,同样的方式--env-file
可以放到docker docker run
。 这个env文件将被docker run
自动分析,并且这个variables在容器中可用。
有没有可能以同样的方式指定一个构build参数文件?
至less现在没有这样的select。 但是,如果您有太多的构build参数,并且想将其保存在文件中,则可以按以下方式进行存档:
-
将下面的shell保存到
buildargs.sh
,使其可执行并将其放入PATH
:#!/bin/bash awk '{ sub ("\\\\$", " "); printf " --build-arg %s", $0 } END { print "" }' $@
-
使用
argfile
构build您的映像,argfile
所示:docker build $(buildargs.sh argfile) -t your_image .
这段代码对于包含空格和特殊字符的build-arg是安全的:
for arg in buildarg1 buildarg2 ; do opts+=(--build-arg "$arg") ; done ... docker run ... "${opts[@]}"
只需用你的build-arg的转义replacebuildarg1等等。