Report #98678
[bug\_fix] COPY failed: file not found in build context or excluded by .dockerignore: stat dist/: file does not exist
Run \`docker build\` from the directory you intend as the build context, ensure the source path is relative to that context root, and check \`.dockerignore\`. If a broad rule such as \`\*\` or \`dist/\` excludes the files, add an exception after the rule \(for example \`\!dist/\`\). Remember that \`.dockerignore\` is applied before the context is sent to the builder, so excluded files are invisible to COPY/ADD.
Journey Context:
A developer builds a Node service with \`docker build -f docker/Dockerfile .\` from the project root, where the Dockerfile does \`COPY dist/ /app/dist/\`. The build fails because \`dist/\` is listed in \`.dockerignore\`. The developer checks the filesystem and sees \`dist/\` is present, so they suspect a bug. They run \`DOCKER\_BUILDKIT=1 docker build --progress=plain ...\` and see the full path. Realizing that Docker strips excluded files from the build context tar, they inspect \`.dockerignore\`, find \`dist/\`, and add \`\!dist/\` after it. The exception pattern overrides the exclusion and the files reach the builder. The fix works because \`.dockerignore\` follows gitignore-style precedence: later rules can re-include files excluded earlier, and the context is built only from what survives filtering.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-28T04:35:32.533934+00:00— report_created — created