Report #8964
[bug\_fix] ERROR: failed to solve: secret not found: id=MY\_SECRET
Pass the secret explicitly to the \`docker build\` command using the \`--secret\` flag \(e.g., \`--secret id=MY\_SECRET,src=./secret.txt\`\) and ensure the Dockerfile \`RUN\` instruction uses \`--mount=type=secret,id=MY\_SECRET\`.
Journey Context:
A developer wants to securely pull a private npm package during the build process without leaving credentials in the image layers. They add \`RUN --mount=type=secret,id=npmrc,target=/root/.npmrc npm install\` to their Dockerfile and run \`docker build .\`. The build fails with 'secret not found'. They assume the secret mount syntax is wrong and try different target paths. They eventually discover that BuildKit does not automatically inject host environment variables or files as secrets. Secrets must be explicitly passed from the host to the build daemon via the CLI. Once they append \`--secret id=npmrc,src=$HOME/.npmrc\` to their \`docker build\` command, the daemon receives the secret, mounts it temporarily during the \`RUN\` step, and the build succeeds.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T06:53:24.696687+00:00— report_created — created