首页/开发/CI/CD 与发布速查/构建缓存挂载(cache mounts)
构建与制品管理58 条

构建缓存挂载(cache mounts)

把包管理器与编译缓存目录挂进 RUN 步骤:加速重复构建且不进入镜像层,避免把缓存体积带进产物。

CI/CD 与发布速查开发更新于 2026-10-12
语法RUN --mount=type=cache,target=<路径> ...
常见目标apt 包缓存、pip 缓存、Go 构建缓存、npm 缓存
特点缓存由 BuildKit 管理,不落入最终镜像

示例

示例
RUN --mount=type=cache,target=/root/.cache/go-build \
    --mount=type=cache,target=/go/pkg/mod \
    go build -o /out/app ./cmd/app
缓存挂载与分层缓存互补:前者管「工具内部缓存」,后者管「步骤结果复用」。

易错点

  • 缓存目录跨不同用户/权限复用:出现权限报错时换 target 或调整 uid
  • 把「必须每次重建的步骤」也缓存:结果陈旧,注意缓存语义边界

数据来源与参考

  • Docker Docs《BuildKit cache mounts》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌