29 lines
1009 B
Docker
29 lines
1009 B
Docker
# 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/<name>/Dockerfile.fragment and
|
|
# docker/stacks/<name>/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
|