Report #16927
[bug\_fix] Cache mounts \(RUN --mount=type=cache,...\) work locally but are completely empty on every CI run, causing dependency installation to take full time
Use external cache storage backends \(like --cache-to and --cache-from with type=gha or type=registry\) or persist the BuildKit daemon's data root across CI runs.
Journey Context:
A developer adds RUN --mount=type=cache,target=/root/.npm npm install to speed up builds. Locally, it works perfectly. In GitHub Actions, it re-downloads everything. They dig into BuildKit documentation and realize type=cache is a build-time mount that persists on the local BuildKit daemon's storage. CI runners are ephemeral, so the local daemon storage is wiped after the job completes. The fix is to use external cache storage \(like GitHub Actions cache via type=gha or a registry cache\) via --cache-to and --cache-from to persist the layer cache across runs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T03:57:47.774361+00:00— report_created — created