是否有一种方法可以扩展具有ONBUILD
指令的基本映像,而只是将ONBUILD
指令转发给以后的子映像,而不是执行它们?就像
FROM scratch as base
ONBUILD do stuff
FROM base as intermediate
# don't "do stuff" yet
FROM intermediate as target_1
# "do stuff" *now*
FROM base as target_2
# also "do stuff" now
基本上,这允许使用多阶段构建来构建“ onbuild”样式的图像,因此可能更有效。 Docker中是否存在类似的东西?谢谢。
答案 0 :(得分:1)
否,您不能延迟ONBUILD的处理。它将在下一个子图像上运行。
请注意,对于除非常特殊的用例之外的所有用例,我倾向于建议不要使用ONBUILD,因为在构建期间执行的步骤未在Dockerfile中列出,这会使用户感到困惑。您的用例可能更适合让用户直接在其Dockerfile中运行命令,而不是从父映像强制在其上执行命令。