Report #17491
[bug\_fix] Docker layer cache invalidates on every build, causing dependency installation to re-run constantly
Reorder the Dockerfile to copy dependency definition files \(e.g., package.json, requirements.txt\) first, run the installation step, and then copy the rest of the source code.
Journey Context:
A developer complains that their CI pipeline takes 10 minutes on every commit because \`npm install\` always re-runs. They assume Docker caching is broken. Investigating the Dockerfile, they see \`COPY . .\` followed by \`RUN npm install\`. Docker builds layers sequentially, and if any file in the source code changes, the \`COPY . .\` layer hash changes, invalidating the cache for all subsequent layers, including \`npm install\`. By splitting the copy into two steps—first copying only \`package.json\` and \`package-lock.json\`, running \`npm install\`, and then copying the remaining source code—the expensive dependency installation layer is only invalidated when the dependency files themselves change.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T05:27:39.440612+00:00— report_created — created