Skip to content

fix: build on Go 1.26 trixie into distroless static-debian13 - #11

Merged
dmakarenko merged 1 commit into
goodnotesfrom
kratos-go126-static-image-20260930
Sep 30, 2026
Merged

dmakarenko merged 1 commit into
goodnotesfrom
kratos-go126-static-image-20260930

Conversation

@dmakarenko

Copy link
Copy Markdown
Collaborator

Moves .docker/Dockerfile-build to a digest-pinned golang:1.26-trixie builder with CGO_ENABLED=0 on distroless/static-debian13:nonroot, and removes SQLite from the image (DSN=memory and sqlite DSNs no longer work, and no deployment uses them).

Why: Go 1.22 gets no security fixes, and bullseye-security returns 404, so v1.3.0-gn-v9 does not build now. This replaces #10.

Tested: linux/arm64 + linux/amd64 builds pass. The arm64 image migrates and serves against CockroachDB v24.1.6 and fetches an HTTPS schema. selfservice/strategy/oidc tests give 136 pass / 5 fail on both Go 1.26 and Go 1.22 (the same failures on both).

https://claude.ai/code/session_0192dFsdvVuQdqMdVxi9HDkz

The builder moves from golang:1.22-bullseye to golang:1.26-trixie. Go 1.22
gets no security fixes, and bullseye-security now returns 404, so the
v1.3.0-gn-v9 tag no longer builds.

CGO is off and the sqlite build tag is removed. Every deployment uses
CockroachDB, so the binary is static and the runtime moves from
distroless/base-nossl-debian12 to distroless/static-debian13, without glibc.
DSN=memory and sqlite DSNs no longer work in this image.

Both base images are pinned by digest. go.mod stays at go 1.22, which keeps
the GODEBUG defaults.

Claude-Session: https://claude.ai/code/session_0192dFsdvVuQdqMdVxi9HDkz
@dmakarenko
dmakarenko merged commit 1d4bc3b into goodnotes Sep 30, 2026
12 of 22 checks passed
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