多阶段构建 (Multi-Stage Builds) 允许通过在单个文件中使用多个阶段来创建更精简的 Docker 镜像。第一个阶段用于编译依赖项和源代码,而后续阶段仅复制必要的构建产物。这种技术可以消除最终镜像中不必要的库和二进制文件,从而显著降低存储成本,并加快生产环境中的容器启动速度。
在 Dockerfile 中定义多个构建阶段,以将编译逻辑与运行时需求隔离开。
按照顺序执行每个阶段,确保仅将必要的文档传递到下一个阶段。
将图像优化完成,通过将尽可能少的附加信息复制到基础镜像中,确保其不依赖任何外部环境。
使用官方基础镜像,创建 `FROM` 指令,用于初始编译阶段。
在此隔离环境中,安装构建工具并编译应用程序代码。
启动第二个 `FROM` 指令,使用最小化的运行时镜像,用于后续的构建阶段。
仅将编译好的二进制文件或静态资源复制到最终阶段,无需包含源代码文件。
请将构建文件结构化,使用 `FROM` 指令明确定义不同的构建阶段,并使用清晰的 `COPY` 命令。
监控 CI/CD 流程中的各个环节,确保其成功完成,同时避免传递临时文件。
使用 Docker inspect 命令或第三方工具,以衡量与单阶段构建相比,镜像体积的减少程度。