Report #103703
[bug\_fix] BuildKit secret mount \(--mount=type=secret\) results in empty file or 'secret not found' at build time
Pass the secret file explicitly with \`--secret id=mysecret,src=./secret.txt\` and reference it in Dockerfile as \`RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecret\`.
Journey Context:
A developer wanted to inject an API token during image build without including it in the final image. They wrote \`RUN --mount=type=secret,id=token cat /run/secrets/token\` and ran \`docker build --secret id=token\` but the file was empty. They checked that the secret file existed on the host. The root cause: they omitted the \`src\` parameter, so BuildKit looked for a file named 'token' in the current directory but didn't find it, resulting in an empty mount. The fix: add \`src=./token.txt\` to the --secret flag. Also, they learned that the secret is mounted at \`/run/secrets/\` by default, and the file permissions are 0400 by default, so the build user must have read access.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-12T20:06:04.539031+00:00— report_created — created