| # syntax=docker/dockerfile:1 | |
| ARG GO_VERSION=1.26.10 | |
| # ALPINE_VERSION sets the version of the alpine base image to use, including for the golang image. | |
| # It must be a supported tag in the docker.io/library/alpine image repository | |
| # that's also available as alpine image variant for the Golang version used. | |
| ARG ALPINE_VERSION=3.23 | |
| # GOLANGCI_LINT_VERSION sets the version of the golangci/golangci-lint image to use. | |
| ARG GOLANGCI_LINT_VERSION=v2.10.1 | |
| FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION}-alpine AS golangci-lint | |
| FROM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS lint | |
| ENV GOTOOLCHAIN=local | |
| ENV GO111MODULE=auto | |
| ENV CGO_ENABLED=0 | |
| ENV GOGC=75 | |
| WORKDIR /go/src/github.com/docker/cli | |
| COPY --link --from=golangci-lint /usr/bin/golangci-lint /usr/bin/golangci-lint | |
| RUN --mount=type=bind,target=.,rw \ | |
| --mount=type=cache,target=/root/.cache \ | |
| rm -f go.mod go.sum && \ | |
| ln -s vendor.mod go.mod && \ | |
| ln -s vendor.sum go.sum && \ | |
| golangci-lint run |