diff --git a/images/code/Containerfile b/images/code/Containerfile index 8d642e66d4..d8a7091b56 100644 --- a/images/code/Containerfile +++ b/images/code/Containerfile @@ -56,9 +56,9 @@ RUN git config --system http.sslCAInfo /etc/ssl/certs/ca-certificates.crt 2>/dev # # Pinned version + SHA256 checksum for supply chain safety. # To update: get the latest linux-{amd64,arm64} archive + sha256 from https://go.dev/dl/?mode=json -ARG GO_VERSION=1.24.13 -ARG GO_SHA256_AMD64=1fc94b57134d51669c72173ad5d49fd62afb0f1db9bf3f798fd98ee423f8d730 -ARG GO_SHA256_ARM64=74d97be1cc3a474129590c67ebf748a96e72d9f3a2b6fef3ed3275de591d49b3 +ARG GO_VERSION=1.26.0 +ARG GO_SHA256_AMD64=aac1b08a0fb0c4e0a7c1555beb7b59180b05dfc5a3d62e40e9de90cd42f88235 +ARG GO_SHA256_ARM64=bd03b743eb6eb4193ea3c3fd3956546bf0e3ca5b7076c8226334afe6b75704cd RUN case "$TARGETARCH" in \ amd64) GO_SHA="$GO_SHA256_AMD64" ;; \ @@ -71,6 +71,16 @@ RUN case "$TARGETARCH" in \ && tar -C /usr/local -xzf /tmp/go.tar.gz \ && rm /tmp/go.tar.gz +ENV PATH="/usr/local/go/bin:${PATH}" \ + GOPATH="/sandbox/go" \ + GOMODCACHE="/sandbox/go/pkg/mod" + +# --------------------------------------------------------------------------- +# gopls — Go language server for Claude Code LSP code intelligence. +ARG GOPLS_VERSION=0.22.0 +RUN GOBIN=/usr/local/go/bin go install "golang.org/x/tools/gopls@v${GOPLS_VERSION}" \ + && gopls version + # --------------------------------------------------------------------------- # lychee — markdown link checker used by pre-commit hooks (lint-md-links). # Baked into the image so pre-commit hooks work without network access. @@ -112,9 +122,3 @@ COPY scan-secrets /usr/local/bin/scan-secrets RUN chmod +x /usr/local/bin/scan-secrets USER sandbox - -# --------------------------------------------------------------------------- -# gopls — Go language server for Claude Code LSP code intelligence. -ENV PATH="/sandbox/go/bin:/usr/local/go/bin:${PATH}" -ARG GOPLS_VERSION=0.18.1 -RUN go install "golang.org/x/tools/gopls@v${GOPLS_VERSION}" && gopls version