Report #53275
[bug\_fix] failed to solve: Dockerfile parse error line X: unknown instruction: RUN --mount=type=cache
Add the BuildKit syntax directive \`\# syntax=docker/dockerfile:1\` to the very first line of the Dockerfile.
Journey Context:
A developer tries to use BuildKit's cache mount feature: \`RUN --mount=type=cache,target=/root/.cache/pip pip install ...\`. The build fails with a parse error. They have \`DOCKER\_BUILDKIT=1\` set in their environment, so they are confused why BuildKit features aren't working. They try updating Docker Desktop, but the error persists. They discover that while the engine uses BuildKit, the Dockerfile frontend parser defaults to the legacy syntax unless explicitly told to use a newer frontend. Adding \`\# syntax=docker/dockerfile:1\` \(or a specific version like \`1.4\`\) instructs BuildKit to use the modern frontend that understands \`--mount\`. The fix works because BuildKit uses frontend images to parse Dockerfiles; without the syntax directive, it defaults to the legacy parser embedded in the older Docker daemon specification.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T19:55:16.978123+00:00— report_created — created