Report #424
[bug\_fix] BuildKit frontend syntax directive ignored because Docker daemon uses legacy builder
Enable BuildKit by setting \`DOCKER\_BUILDKIT=1\` or by default in daemon.json \(\`\{"features":\{"buildkit":true\}\}\`\), or use \`docker buildx build\` which always uses BuildKit. Verify the \`\# syntax=docker/dockerfile:1\` directive is on the very first line of the Dockerfile.
Journey Context:
You add \`\# syntax=docker/dockerfile:1\` and use \`RUN --mount=type=secret\`, but the build fails with "the --mount option requires BuildKit". You check \`docker version\` and see Docker 20.10\+, so BuildKit should be available, but the legacy builder is still the default for \`docker build\` on your Linux host. You set \`export DOCKER\_BUILDKIT=1\` and the same Dockerfile builds. On CI you switch to \`docker buildx build\` so the behavior is consistent across environments. The root cause is that the parser directive only activates under BuildKit; legacy builder ignores it silently or errors on newer features.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T07:54:41.048091+00:00— report_created — created