我正在使用多个构建参数构建Docker镜像,并且想知道是否可以将它们作为文件传递给docker build
,同样--env-file
可以设置为{{ 1}}。 env文件将由docker run
自动解析,变量在容器中可用。
是否可以以相同的方式指定构建参数的文件?
答案 0 :(得分:3)
至少就目前而言,没有这样的选择。但是如果你有太多的构建参数并希望将它保存在一个文件中,你可以按如下方式将其存档:
将以下shell保存到buildargs.sh
,使其可执行并将其放入PATH
:
#!/bin/bash
awk '{ sub ("\\\\$", " "); printf " --build-arg %s", $0 } END { print "" }' $@
使用argfile
构建您的图片,如:
docker build $(buildargs.sh argfile) -t your_image .
答案 1 :(得分:0)
此代码对于包含空格和特殊字符的build-arg是安全的:
for arg in buildarg1 buildarg2 ; do opts+=(--build-arg "$arg") ; done
...
docker run ... "${opts[@]}"
只需替换 buildarg1 等等,您的build-arg就会被转义。