Report #84110
[bug\_fix] Docker layer cache is invalidated on every build, even for minor code changes, causing full dependency reinstalls
Reorder Dockerfile instructions: copy dependency manifests \(package.json, requirements.txt\) first, run the install step, and then copy the rest of the source code.
Journey Context:
A developer notices their CI pipeline takes 10 minutes on every push. Looking at BuildKit logs, they see the RUN npm install step never shows CACHED. They assume BuildKit is broken or the CI is not saving the cache. The rabbit hole: they try exporting/importing cache manually. The real issue is their Dockerfile has COPY . . followed by RUN npm install. Any change to any source file changes the checksum of the COPY . . layer, invalidating all subsequent layers including the install step. By splitting the copy, dependency installation is only invalidated when package.json changes, saving minutes of build time.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T23:46:00.432478+00:00— report_created — created