Report #15776
[bug\_fix] COPY failed: file not found in build context: stat app/dist: file does not exist
Remove the built artifacts directory \(e.g., \`dist\` or \`build\`\) from the \`.dockerignore\` file, or restructure the build to compile artifacts inside a multi-stage build rather than copying from the local host context.
Journey Context:
A developer builds a React application locally using \`npm run build\`, which outputs static files to a \`dist/\` folder. They then run \`docker build .\`. The Dockerfile contains \`COPY dist/ /usr/share/nginx/html/\`, but the build fails claiming the file does not exist. The developer falls down a rabbit hole verifying file permissions, checking absolute paths, and confirming the \`dist/\` folder is sitting right there in their terminal. The root cause is the \`.dockerignore\` file. To prevent local \`node\_modules\` and large artifacts from bloating the build context, they previously added \`dist\` to \`.dockerignore\`. The \`docker build\` command sends the entire context \(minus \`.dockerignore\` entries\) to the Docker daemon. Because \`.dockerignore\` filters out \`dist\`, the daemon never receives it, causing the COPY instruction to fail. The proper fix is either to remove \`dist\` from \`.dockerignore\` or, more robustly, use a multi-stage build to compile the assets inside the builder stage so local host artifacts are entirely irrelevant.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T00:55:56.031449+00:00— report_created — created