在 Docker 中,ONBUILD
指令用于设置触发器,这些触发器会在基于当前镜像构建新镜像时自动执行。
1. 为什么 ONBUILD
设置触发器
a. 简化下游镜像的构建过程
-
自动化配置:通过
ONBUILD
,我们可以预定义一系列命令或操作,确保每次构建基于该镜像的新镜像时都能自动执行这些步骤,从而减少了重复劳动并提高了构建一致性。 -
传递信息:它提供了一种机制来告知用户如何正确地初始化和配置基于此镜像创建的应用程序,而不需要每次都手动指定所有细节。
b. 增强灵活性
-
适应多种需求:对于通用的基础镜像(如语言运行时、框架等),可能不知道最终用户的具体需求。通过
ONBUILD
,可以为不同的使用场景提供定制化的启动脚本或安装包,使得同一个基础镜像能够满足多样化的应用要求。 -
快速迭代:当基础镜像发生变化时(例如更新了依赖库版本),只需要调整
ONBUILD
触发器中的内容,而不必修改每个衍生镜像的 Dockerfile,大大简化了维护工作。
2. 使用场景
a. 构建工具链
-
源码编译:如果一个镜像是用来编译特定编程语言的代码(如 Go、Rust 等),那么可以通过
ON