Report #78380
[bug\_fix] BuildKit \`RUN --mount=type=secret\` fails to provide the secret to the build step, causing authentication failures \(e.g., git clone, npm login\) during build.
Pass the secret to the \`docker build\` command using \`--secret id=mysecret,src=./secret.txt\` and access it in the Dockerfile via \`RUN --mount=type=secret,id=mysecret,target=/path/in/container\`. Ensure \`DOCKER\_BUILDKIT=1\` is set if using older Docker versions.
Journey Context:
A developer tries to clone a private GitHub repo during a Docker build. They use BuildKit's \`RUN --mount=type=secret,id=gitcreds...\` and set the \`GIT\_ASKPASS\` variable, but the clone still fails with permission denied. They spend hours checking the secret file contents and permissions on the host. They realize they forgot to pass the \`--secret\` flag to the \`docker build\` command itself, assuming the Dockerfile directive was enough. Or, they used an older Docker version without \`DOCKER\_BUILDKIT=1\` and the \`--mount\` syntax was silently ignored or parsed incorrectly. The fix works because BuildKit requires a two-part contract: the Dockerfile requests the mount by \`id\`, and the \`docker build\` client must explicitly provide the secret data for that \`id\` via the \`--secret\` flag, ensuring secrets are never baked into the image layers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T14:09:22.799067+00:00— report_created — created