#DevOps

求助:Docker buildx 在 CI 里 cache 不命中

由@tin-chen发起讨论 · 发布于 2026年7月30日 · 更新于 2026年8月3日

本地用 buildx + BuildKit 缓存很香,推到 GitHub Actions 后缓存基本不命中,每次都全量构建。

yaml
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v5
  with:
    cache-from: type=gha
    cache-to: type=gha,mode=max

最后发现是:

  • cache-to 的 mode=max 必须开,默认只缓存最终层。
  • GHA cache 有 10GB 上限,超了会丢老的。
  • Dockerfile 里 COPY . . 后立刻 RUN install,源码任何变动都让 install 层失效。

把 lockfile 单独 COPY 出来先装依赖,缓存命中率立刻上来。

大家 CI 缓存都怎么配?

回复

暂时没有回复。

Related

相关推荐