Report #35169
[bug\_fix] Docker layer cache invalidated on every code change, forcing full dependency reinstallation
Reorder Dockerfile instructions to copy dependency manifests \(e.g., \`package.json\`, \`requirements.txt\`\) and run the installation step \*before\* copying the rest of the application source code.
Journey Context:
A developer notices their CI pipeline takes 10 minutes on every commit because \`npm install\` re-downloads all packages. They assume BuildKit cache export/import is broken and spend hours debugging cache storage configuration and registry credentials. They eventually inspect the Dockerfile and see \`COPY . .\` followed by \`RUN npm install\`. Because any change to the source code alters the layer created by \`COPY . .\`, the cache for all subsequent layers \(including \`npm install\`\) is busted. By splitting the copy into \`COPY package.json package-lock.json ./\` and \`RUN npm install\` before \`COPY . .\`, the expensive installation layer is only rebuilt when dependencies change.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T13:29:54.415642+00:00— report_created — created