| # syntax=docker/dockerfile:1 |
| |
| ARG GO_VERSION=1.25.5 |
| |
| # 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.22 |
| # GOLANGCI_LINT_VERSION sets the version of the golangci/golangci-lint image to use. |
| ARG GOLANGCI_LINT_VERSION=v2.6.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 |