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