背景说明

当构建一个被继承Dockerfile时运行的命令,父镜像在被子镜像继承后,父镜像的ONBUILD会被触发调用。其实有点像Java的里父类super方法。

使用场景: 假设希望别人在基于您的镜像构建时输出一些描述信息则可以使用 运行时机: 在子镜像构建时进行运行 使用优点:ONBUILD指令允许通过考虑父映像中的重复配置来大幅减少Dockerfile的大小

解决方案

普通场景

  1. FROM busybox
  2. MAINTAINER ljhan2
  3. CMD echo "this is cmd instrunction"
  4. ONBUILD RUN echo "father onbuild instruction,author is ljhan2"

典型场景

在以后的任何时间点,都可以从任何兼容Maven的文件夹结构中创建精简的Dockerfile并使用构建映像来构建应用程序,子镜像均会执行mvn package

  1. FROM maven:3.6.0-alpine
  2. WORKDIR app
  3. ONBUILD COPY . /app
  4. ONBUILD RUN mvn package