Report #3643
[bug\_fix] failed to solve with frontend dockerfile.v0: failed to load cache key: pull access denied for docker/dockerfile
Remove the \# syntax=docker/dockerfile:1 directive from the Dockerfile if BuildKit features used are supported by the default internal frontend, or configure the Docker daemon to pull the image through a corporate proxy/mirror, or pin the syntax to an internally hosted copy of the image.
Journey Context:
A developer enables BuildKit features by adding \# syntax=docker/dockerfile:1 to the top of their Dockerfile. It works perfectly on their local machine. When they push to the corporate CI pipeline, the build fails immediately with a 'pull access denied' error referencing docker/dockerfile:1. They assume their application image base is failing to pull, but the error happens before any FROM instruction. They fall down a rabbit hole checking Docker Hub credentials and base image permissions. Finally, they realize BuildKit treats the syntax directive as an image to pull—it is a 'frontend' image that parses the Dockerfile. The corporate firewall blocks Docker Hub, so BuildKit cannot pull the parser image. Since they are using a modern Docker version where the internal BuildKit frontend already supports the features they need \(like --mount=type=cache\), they simply delete the \# syntax= line, and the build succeeds using the built-in frontend.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T17:51:26.534180+00:00— report_created — created