- Add golangci-lint v2.12.2 to node-go image (arch-aware via official install.sh) - Wire renovate.json to auto-bump GOLANGCI_LINT_VERSION (minor/patch automerge) and GO_VERSION (patch automerge); keep pins for reproducible/rollback-able builds - Add node-go/README.md documenting installed tools and what's NOT included - Update root README accordingly Co-Authored-By: Claude <noreply@anthropic.com>
34 lines
1.2 KiB
Docker
34 lines
1.2 KiB
Docker
FROM node:lts-slim
|
|
|
|
ARG GO_VERSION=1.26
|
|
ARG GOLANGCI_LINT_VERSION=v2.12.2
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive \
|
|
PATH=/usr/local/go/bin:${PATH}
|
|
|
|
RUN set -eux; \
|
|
apt-get update; \
|
|
apt-get install -y --no-install-recommends ca-certificates curl git gcc libc6-dev; \
|
|
arch="$(dpkg --print-architecture)"; \
|
|
case "${arch}" in \
|
|
amd64) go_arch='linux-amd64' ;; \
|
|
arm64) go_arch='linux-arm64' ;; \
|
|
*) echo "Unsupported architecture: ${arch}" >&2; exit 1 ;; \
|
|
esac; \
|
|
case "${GO_VERSION}" in \
|
|
*.*.*) download_go_version="${GO_VERSION}" ;; \
|
|
*.*) download_go_version="${GO_VERSION}.0" ;; \
|
|
*) echo "GO_VERSION must be major.minor or major.minor.patch: ${GO_VERSION}" >&2; exit 1 ;; \
|
|
esac; \
|
|
curl -fsSL "https://go.dev/dl/go${download_go_version}.${go_arch}.tar.gz" -o /tmp/go.tgz; \
|
|
rm -rf /usr/local/go; \
|
|
tar -C /usr/local -xzf /tmp/go.tgz; \
|
|
rm -f /tmp/go.tgz; \
|
|
curl -fsSL -o /tmp/golangci-lint-install.sh \
|
|
"https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh"; \
|
|
sh /tmp/golangci-lint-install.sh -b /usr/local/bin "${GOLANGCI_LINT_VERSION}"; \
|
|
rm -f /tmp/golangci-lint-install.sh; \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|