# syntax=docker/dockerfile:1 ARG GO_VERSION=1.20 ARG XX_VERSION=1.2.1 ARG DOCKERD_VERSION=20.10.14 ARG GOTESTSUM_VERSION=v1.9.0 ARG REGISTRY_VERSION=2.8.0 ARG BUILDKIT_VERSION=v0.11.6 FROM docker:$DOCKERD_VERSION AS dockerd-release # xx is a helper for cross-compilation FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine AS golatest FROM golatest AS gobase COPY --from=xx / / RUN apk add --no-cache file git ENV GOFLAGS=-mod=vendor ENV CGO_ENABLED=0 WORKDIR /src FROM registry:$REGISTRY_VERSION AS registry FROM moby/buildkit:$BUILDKIT_VERSION AS buildkit FROM gobase AS gotestsum ARG GOTESTSUM_VERSION ENV GOFLAGS= RUN --mount=target=/root/.cache,type=cache \ GOBIN=/out/ go install "gotest.tools/gotestsum@${GOTESTSUM_VERSION}" && \ /out/gotestsum --version FROM gobase AS buildx-version RUN --mount=type=bind,target=. <