Docker 构建加速:深入理解 Layer Cache
CI/CD 流水线中 Docker 构建速度直接影响开发体验。理解 Layer Cache 的机制是优化的关键。
Layer Cache 的命中规则
Docker 按顺序检查每一条指令。如果某条指令及其上下文与上一次构建完全相同,则命中缓存;一旦某层未命中,后续所有层都需要重新构建。
优化技巧
- 依赖文件先复制:将
package.json或go.mod的 COPY 放在代码 COPY 之前。 - 多阶段构建:将编译和运行环境分离,最终镜像只包含运行时依赖。
- --mount=type=cache:使用 BuildKit 的 cache mount 缓存包管理器下载的文件。
在我们的项目上应用这些优化后,平均构建时间从 8 分钟降到了 1 分钟以内。