Report #83497
[bug\_fix] Secret file is empty or missing inside the RUN command when using \`--mount=type=secret\`, causing authentication to fail
Pass the secret to the \`docker build\` command using \`--secret id=mysecret,src=mysecret.txt\` and ensure BuildKit is explicitly enabled if using an older Docker version.
Journey Context:
A developer tries to use BuildKit's secret mounting to securely clone a private Git repository during the build. They add \`RUN --mount=type=secret,id=gitkey,target=/root/.ssh/id\_rsa git clone ...\` to their Dockerfile. The build fails with a Git permission denied error. They check the SSH key locally and it works fine. They try echoing the key inside the RUN command, but it's empty. The rabbit hole involves messing with SSH agent forwarding, checking file permissions \(600\), and trying different target paths. The root cause is that they forgot to pass the \`--secret\` flag to the \`docker build\` command itself, or they are using an older Docker version without BuildKit enabled \(so it falls back to the legacy builder which silently ignores the \`--mount\` or fails\). The fix is to ensure the build command includes \`DOCKER\_BUILDKIT=1 docker build --secret id=gitkey,src=~/.ssh/id\_rsa .\` and that the source file exists at that path.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T22:44:25.566532+00:00— report_created — created