# Go stack overlay fragment. # # Layer this on top of huskies-project-base to produce a project container # with Go 1.22, gopls (official Go language server), and standard tooling. # # Build the combined image: # (echo "FROM huskies-project-base"; \ # cat docker/stacks/go/Dockerfile.fragment) | \ # docker build -t huskies-project-go - # # Adding a new stack: create docker/stacks//Dockerfile.fragment and # docker/stacks//markers — no changes to orchestration code required. USER root # Official Go binary distribution — Debian's golang-go package is too old for gopls. # Update GOVERSION to pick up a newer release. ENV GOVERSION="1.22.3" RUN curl -fsSL "https://go.dev/dl/go${GOVERSION}.linux-amd64.tar.gz" \ | tar -C /usr/local -xzf - ENV PATH="/usr/local/go/bin:${PATH}" # gopls: the official Go language server. # GOBIN=/usr/local/bin puts the binary on the system PATH for all users. RUN GOBIN=/usr/local/bin go install golang.org/x/tools/gopls@latest USER huskies