Report #58048
[bug\_fix] BuildKit RUN --mount=type=secret fails or results in empty file inside the build step
Pass the secret explicitly during the build command using \`--secret id=,src=\` and ensure the \`id\` matches the one specified in the Dockerfile instruction.
Journey Context:
A developer wants to securely clone a private Git repository during a Docker build without leaving SSH keys in the image layer. They add \`RUN --mount=type=secret,id=sshkey,target=/root/.ssh/id\_rsa git clone [email protected]:org/repo.git\`. They run \`docker build .\` and the Git clone fails with a permission denied error. They verify the SSH key works on their host. After reading the BuildKit documentation, they realize that defining the mount in the Dockerfile is only half the equation. BuildKit strictly isolates secrets; they must be explicitly passed from the host at build time. The developer updates their build command to \`docker build --secret id=sshkey,src=~/.ssh/id\_rsa .\`. The \`id\` matches the Dockerfile, and BuildKit securely mounts the host key into the container only for the duration of that specific \`RUN\` step.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T03:55:19.740087+00:00— report_created — created