Skip to content

Pin templ version in docker-deps (fixes Docker CI build) - #356

Merged
joestump merged 1 commit into
mainfrom
fix/docker-deps-pin-templ
Jul 10, 2026
Merged

Pin templ version in docker-deps (fixes Docker CI build)#356
joestump merged 1 commit into
mainfrom
fix/docker-deps-pin-templ

Conversation

@joestump

Copy link
Copy Markdown
Owner

The docker-deps Make target installed templ@latest, which as of v0.3.1020 requires Go >= 1.25 — but the Dockerfile builder image is golang:1.24 with GOTOOLCHAIN=local, so every Build and Push CI job has failed since 2026-05-22 (first failing run: https://github.com/joestump/spotter/actions/runs/26277286030).

ci-deps already pins templ to the version in go.mod; this applies the identical pattern to docker-deps, making the Docker build reproducible and consistent with the tested module version.

Found while working the Spotter remediation board (https://github.com/users/joestump/projects/98) — this pre-existing failure was masking Docker-build signal on every remediation PR.

🤖 Posted on behalf of @joestump by Claude.

docker-deps installed templ@latest, which now requires Go >= 1.25 while the
Dockerfile builder image is golang:1.24 — every Build and Push CI job has
failed since 2026-05-22. ci-deps already pins templ to the go.mod version;
this applies the same pattern so Docker builds are reproducible and match
the module's tested version.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@joestump
joestump merged commit f3b4cbb into main Jul 10, 2026
1 check passed
@joestump

Copy link
Copy Markdown
Owner Author

Independent review — LGTM

Verified:

  • Diff scope: Makefile only (2 lines). Pins templ in docker-deps and also in the local deps target — both copy the exact pattern already used by ci-deps (go install github.com/a-h/templ/cmd/templ@$(shell go list -m -f '{{.Version}}' github.com/a-h/templ)), so all three targets now install the same templ version.
  • Diagnosis confirmed: Dockerfile builder is FROM golang:1.24 and go.mod pins github.com/a-h/templ v0.3.977 (predates the Go ≥ 1.25 requirement introduced in v0.3.1020), so @latest was the only thing incompatible with the builder image.
  • Proof it works: the Build and Push check ran the actual docker build (Buildx "Build and push Docker image" step) on this PR's head and passed (https://github.com/joestump/spotter/actions/runs/29073514298/job/86300830692), alongside passing Lint and Test.
  • No regressions expected: $(shell go list -m ...) only reads go.mod (works before go mod download), and local dev via make deps now gets the go.mod-tested templ version instead of a drifting @latest — a strict improvement for reproducibility.

One note: this pins to whatever go.mod says, so future templ upgrades happen via go get bumps — which is exactly the desired behavior.

🤖 Posted on behalf of @joestump by Claude.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant