别再从零构建:在 Cloud Build 上缓存 Docker 层
来源:dev.to — 2026-09-07
📋 概述
作者自认早期搭 CI 流水线时既没有优化意识也没有 GreenOps 敏感度,直到与朋友一次协作后才开始留意构建效率,收益立竿见影——流水线更快更省,也不再空烧机器,而他如今把这套纪律带到每个 CI/CD 工具里。令他意外的是,几乎没人(包括 GDE 与 Google 社区)会在 Cloud Build——这个无服务器 CI/CD 工具——上持久化 Docker 缓存。官方文档只指向 --cache-from(会静默漏掉多阶段构建的构建器层)或已被 Google 于 2025-06-03 归档的 Kaniko,唯独没提真正能持久化昂贵依赖层的 BuildKit registry cache 配合 mode=max。
🔑 核心要点
- 痛点在于 Cloud Build 跑在临时 worker 上,Docker 缓存每次运行都消失,导致每次构建都从零拉依赖、又慢又烧钱又费电。
- 解法是用 BuildKit 的 registry cache + mode=max 把缓存持久化到 Artifact Registry——只要依赖没变,uv 一个包都不会重新下载。
- 作者顺手点破官方文档的盲区:--cache-from 指向旧镜像会静默漏掉多阶段 builder 层,而推荐的 Kaniko 项目 2025 年已被 Google 自己归档停止维护,两条路都没碰到真正该用的 BuildKit registry cache。
💡 金句
If nothing changed, uv doesn't re-download a single package.
👍 0
👎 0
← 返回 dev.to 首页