Report #11672
[bug\_fix] Docker build cache invalidated on every source code change due to COPY . . before dependency installation
Reorder the Dockerfile to copy dependency manifests \(package.json, requirements.txt, go.sum, etc.\) and run the install step BEFORE copying the rest of the source code. This ensures the expensive dependency installation layer is cached and only rebuilt when dependency specifications change.
Journey Context:
A developer notices their Docker builds take 5\+ minutes every time they change a single line of source code. They assume Docker caching is broken. They inspect their Dockerfile and find \`COPY . .\` followed by \`RUN npm install\` near the top. Since COPY . . copies all source files, any change to any file invalidates that layer and every subsequent layer, including the slow npm install step. The fix is to split the copy: first \`COPY package.json package-lock.json ./\`, then \`RUN npm install\`, then \`COPY . .\`. This way, npm install only re-runs when package.json changes, not on every source edit. The developer also adds a .dockerignore to exclude node\_modules and .git from the build context, further improving cache hit rates.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T13:54:10.569142+00:00— report_created — created