# syntax=docker/dockerfile:1 ARG GO_VERSION=1.22 ARG XX_VERSION=1.5.0 # for testing ARG DOCKER_VERSION=27.3.1 ARG DOCKER_CLI_VERSION=${DOCKER_VERSION} ARG GOTESTSUM_VERSION=v1.9.0 ARG REGISTRY_VERSION=2.8.3 ARG BUILDKIT_VERSION=v0.17.1 ARG UNDOCK_VERSION=0.8.0 FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine AS golatest FROM moby/moby-bin:$DOCKER_VERSION AS docker-engine FROM dockereng/cli-bin:$DOCKER_CLI_VERSION AS docker-cli FROM registry:$REGISTRY_VERSION AS registry FROM moby/buildkit:$BUILDKIT_VERSION AS buildkit FROM crazymax/undock:$UNDOCK_VERSION AS undock 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 gobase AS gotestsum ARG GOTESTSUM_VERSION ENV GOFLAGS="" RUN --mount=target=/root/.cache,type=cache < "$coverdir/merged-report.txt" mv "$coverdir/merged-report.txt" "$GO_TEST_COVERPROFILE" rm "$coverdir/helpers-report.txt" for f in "$coverdir/helpers"/*; do rm "$f" done rmdir "$coverdir/helpers" exit $ecode EOF FROM gobase AS buildx-version RUN --mount=type=bind,target=. <