Report #91075
[bug\_fix] COPY failed: file not found in build when using COPY --from=
Ensure the artifact is actually created in the specified stage and path. Use explicit stage names instead of indices to avoid off-by-one errors when stages are reordered.
Journey Context:
Developer creates a multi-stage build. Stage 0 builds a Go binary, Stage 1 copies it using COPY --from=0 /app/main /main. It fails with 'file not found in build'. They check the Go build logs and see the build succeeded, but realize the output flag was -o app instead of -o /app/main, so it's in the working directory, not /app/. Alternatively, they added a new stage at the top of the Dockerfile, shifting index 0 to 1, breaking the COPY --from=0. The fix is to use named stages \(FROM golang:1.20 AS builder\) and COPY --from=builder. This works because named stages are resilient to Dockerfile reordering, and explicitly checking the builder's output path ensures the artifact exists at the expected absolute location in the intermediate filesystem.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T11:27:57.225621+00:00— report_created — created