Report #100557
[bug\_fix] Multi-stage \`COPY --from=builder\` fails with \`no such file or directory\` even though the previous stage created the file.
Verify the stage name and the absolute source path inside that stage. Use \`FROM ... AS builder\`, then \`COPY --from=builder /app/myapp /usr/local/bin/myapp\`. Remember that the source path is relative to the root of the source stage's filesystem, not the final stage's WORKDIR.
Journey Context:
A developer writes a two-stage Dockerfile: \`FROM node:20 AS builder\` runs \`npm run build\` producing \`dist/\`, then \`FROM node:20-alpine\` with \`COPY --from=builder dist ./dist\`. The build fails saying \`dist\` was not found in the builder stage. They search the filesystem inside the builder container and see \`/app/dist\`. The error comes from using a relative source path in \`COPY --from\`; the source path is resolved from the filesystem root of the named stage, not from the final stage's WORKDIR, and a bare \`dist\` is ambiguous. Changing to \`COPY --from=builder /app/dist ./dist\` fixes it. A related common mistake is a typo in the stage name \(\`COPY --from=bulder\`\), which BuildKit reports as a missing stage or attempts to resolve as an image name.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T04:42:18.895319+00:00— report_created — created