我正在以一种通用的方式构建我的docker映像,以便可以被多个服务使用,但是并不是所有的--build-arg
都将出现,因为它取决于GitHub操作所调用的服务。是否可以只使用一个或多个--build-arg
,而不使用每个--build-arg
?
指令:
docker build \
-f ${{ inputs.docker-location }} \
-t $IMAGE_NAME:$TAG \
--build-arg value1=${{secrets.value1}} \
--build-arg value2=${{ secrets.value2}} \
--build-arg value3=${{secrets.value3}} \
--build-arg value4=${{ secrets.value4 }} .
所以在这种情况下,我只传递value 1和value 2,但是,它失败了,因为其余的值将为空。
我知道如果所有参数都存在,它就可以工作,因为我已经在使用它了,但是我想以一种更通用的方式扩展它。
提前感谢!:)
3条答案
按热度按时间yeotifhr1#
是否可以只使用一个或多个--build-arg,而不使用每个--build-arg?
是的,您可以通过在Docker文件中定义默认的
ARG
来完成此操作,例如:如需了解更多信息:https://docs.docker.com/engine/reference/builder/#default-values
5lhxktic2#
在你的管道中检查这些秘密是否为空。如果为空,则给予它一个默认值,你将在Dockerfile中适当地处理它。
lxkprmvk3#
我试过几种方法,这一种有效。
另外,如果您不想将任何值当作空值传递,那么您可以不使用默认值,如下所示,管道将忽略空参数。
--build-arg value2=${{ secrets.value2}}