Report #85235
[bug\_fix] Authentication failures \(401 Unauthorized\) or missing credentials during RUN steps, despite using BuildKit secret mounts
Pass the secret to the \`docker build\` command using \`--secret id=,src=\` and mount it in the Dockerfile using \`RUN --mount=type=secret,id=\`. Ensure the command inside the RUN step actually reads the secret from the \`/run/secrets/\` file.
Journey Context:
A developer wants to securely pull a private Git repository during a build. They add \`RUN --mount=type=secret,id=git\_token git clone https://example.com/repo.git\` to the Dockerfile. The build fails with a 401 Unauthorized error. They check the local file containing the token; it's perfectly fine. They go down a rabbit hole checking network policies and Git versions. The realization hits: BuildKit does \*not\* automatically inject secrets into the environment just because they are defined in the Dockerfile. The secret must be explicitly passed from the host via the CLI \(\`--secret\`\), AND the \`RUN\` command must be written to actually consume the secret file \(e.g., \`GIT\_ASKPASS=/run/secrets/git\_token git clone...\`\). The fix works because it explicitly bridges the host secret to the isolated BuildKit execution environment and instructs the tool to read it.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T01:39:13.237183+00:00— report_created — created