Report #13343
[bug\_fix] COPY failed: file not found in build context
Ensure the source path in the COPY instruction is relative to the build context root \(the directory passed to \`docker build\`, typically \`.\`\), not relative to the Dockerfile's location. Also, verify the file isn't matched by a \`.dockerignore\` rule.
Journey Context:
A developer moves their Dockerfile into a \`docker/\` subdirectory for organization and runs \`docker build -t myapp .\` from the project root. The build fails, claiming \`src/main.js\` is not found, even though it exists locally. They spend time checking file permissions and typos. The rabbit hole deepens when they try \`docker build -t myapp docker/\`, which finds the Dockerfile but fails to find any project files. The realization hits: Docker always evaluates COPY paths against the build context \(the \`.\` argument\), never the Dockerfile's directory. Because the context is the project root, \`COPY src/main.js /app/\` works, but if they had used a path relative to the Dockerfile, it fails. Additionally, they sometimes discover that a broad \`.dockerignore\` rule \(like \`\*.js\`\) is excluding the source files from the context entirely, making them invisible to the daemon.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T18:25:18.856413+00:00— report_created — created