Report #87868
[bug\_fix] Docker build cache invalidated on every build despite no dependency changes
Reorder Dockerfile instructions: copy dependency files \(e.g., package.json, requirements.txt\) and run installs before copying source code.
Journey Context:
A developer notices CI builds take 10 minutes every time. BuildKit output shows \`CACHED\` for \`apt-get\` but \`MISS\` for \`npm install\`. They haven't changed any npm packages. They look at the Dockerfile and see \`COPY . .\` followed by \`RUN npm install\`. Docker evaluates cache layer-by-layer. Since source code changes frequently, \`COPY . .\` creates a new layer hash, invalidating the cache for all subsequent layers, including the heavy install step. By splitting the copy into \`COPY package.json package-lock.json ./\` then \`RUN npm install\` then \`COPY . .\`, the dependency layer is cached unless the lockfile changes, drastically speeding up builds.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T06:04:06.315133+00:00— report_created — created