fix(docker): pull the BuildKit frontend via mirror.gcr.io - #3008
Merged
Conversation
The `# syntax=docker/dockerfile:1.4` directive made every image build fetch the frontend from registry-1.docker.io — the last remaining Docker Hub dependency (base images already come from mirror.gcr.io, bun/uv from ghcr.io). Docker Hub pulls from shared GitHub runner IPs intermittently time out, failing CI before the build even starts. Re-point the directive at Google's pull-through cache, which serves the same multi-arch manifest list. The version pin stays for frontend reproducibility. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
There was a problem hiding this comment.
Pull request overview
This PR reduces intermittent CI build failures by moving the Dockerfile BuildKit frontend (# syntax=) pull off Docker Hub and onto mirror.gcr.io, aligning it with the rest of the pipeline’s mirrored base-image usage.
Changes:
- Updated
# syntax=docker/dockerfile:1.4to# syntax=mirror.gcr.io/docker/dockerfile:1.4across the Dockerfile Jinja2 templates for server, viewer, redis, and test images. - Ensures the BuildKit frontend image is no longer the last remaining Docker Hub dependency in the build pipeline.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| docker/Dockerfile.viewer.j2 | Points BuildKit frontend (# syntax) at mirror.gcr.io for viewer image builds. |
| docker/Dockerfile.test.j2 | Points BuildKit frontend (# syntax) at mirror.gcr.io for test image builds. |
| docker/Dockerfile.server.j2 | Points BuildKit frontend (# syntax) at mirror.gcr.io for server image builds. |
| docker/Dockerfile.redis.j2 | Points BuildKit frontend (# syntax) at mirror.gcr.io for redis image builds. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1.4 dates to May 2022; 1.24 is the current release. Nothing in the templates needs newer syntax (--mount=type=cache predates 1.4), so this is purely picking up four years of frontend bugfixes. Keeps the minor-pin convention — the tag floats only over patch releases. Validated by building the rendered redis image against the mirrored 1.24 frontend. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
`docker build --check` with the 1.24 frontend flags the legacy `ENV DEBIAN_FRONTEND noninteractive` form (LegacyKeyValueFormat) in the test template — the only hit across all four templates. All rendered Dockerfiles now lint clean against the new frontend. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
5 tasks
vpetersson
added a commit
that referenced
this pull request
Jun 7, 2026
- CalVer (YYYY.0M.MICRO); still June 2026, micro 1 -> 2 - Ships the Qt 6 video audio fix (#3001) — PulseAudio in the viewer container; videos were silent on pi4-64/pi5/x86/arm64 since the QtMultimedia migration - Adds the arm64/Qt6 pi3-64 board and the Rock Pi 4 fleet (#2985) - Page-load watchdog so a stalled fetch can't freeze the display (#3003), Sentry error tracking for the Django services (#3007) - Redis data persisted to the mounted volume so device identity survives recreation (#2983); unpinner also rolls OS + supervisor updates (#2984) - Streamed backup downloads (#3005), 12-hour AM/PM asset times (#3002), BuildKit frontend via mirror.gcr.io (#3008) Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Issues Fixed
CI builds intermittently fail with
failed to resolve source metadata for docker.io/docker/dockerfile:1.4 … i/o timeout(e.g. the Generate OpenAPI Schema run on the Sentry PR) because the# syntax=directive still pulls the BuildKit frontend from Docker Hub.Description
Two changes to the
# syntax=directive in the four Dockerfile templates (server, viewer, redis, test):mirror.gcr.io— this was the last Docker Hub pull in the build pipeline (base images already usemirror.gcr.io/library/debian; bun/uv come from ghcr.io). Verified the mirror serves the same multi-arch manifest list.--mount=type=cache.Validated by building the rendered redis image locally against
mirror.gcr.io/docker/dockerfile:1.24.Checklist
🤖 Generated with Claude Code