From ca8d36393ba9a2f9f6edc5c23673fa583b678ef3 Mon Sep 17 00:00:00 2001 From: sjc Date: Mon, 5 Jul 2021 10:31:07 -0400 Subject: [PATCH] Changes for init/tidy --- Dockerfile | 27 +++++++++++++++++++++++++-- Makefile | 6 ++++-- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5d4b511..16de060 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,12 +2,17 @@ FROM --platform=${BUILDPLATFORM} golang:1.16.5-alpine AS base WORKDIR /src -ENV CGO_ENABLED=0 +ENV CGO_ENABLED=1 +RUN apk update +RUN apk add gcc g++ +RUN mkdir /out + +FROM base AS buildbase COPY go.* . RUN --mount=type=cache,target=/go/pkg/mod \ go mod download -FROM base AS build +FROM buildbase AS build ARG TARGETOS ARG TARGETARCH RUN --mount=target=. \ @@ -31,6 +36,24 @@ RUN --mount=target=. \ --mount=type=cache,target=/root/.cache/golangci-lint \ golangci-lint run --timeout 10m0s ./... +FROM base as mod-init-base +WORKDIR /out +COPY . . +ENV MODNAME example +RUN rm -f go.sum go.mod ; go mod init "${MODNAME}" && go mod tidy + +FROM base AS mod-tidy +WORKDIR /out +COPY . . +RUN go mod tidy + +FROM scratch AS mod-init +COPY --from=mod-init-base /out/go.mod /go.mod +COPY --from=mod-init-base /out/go.sum /go.sum + +FROM scratch AS tidy +COPY --from=mod-tidy /out/go.sum /go.sum + FROM scratch AS unit-test-coverage COPY --from=unit-test /out/cover.out /cover.out diff --git a/Makefile b/Makefile index 7f1ea82..04b69fb 100644 --- a/Makefile +++ b/Makefile @@ -28,8 +28,10 @@ lint: .PHONY: tidy tidy: - @docker run -t -i -v `pwd`:/src --workdir /src --rm golang:${UTIL_TAG} /usr/local/go/bin/go mod tidy + export DOCKER_BUILDKIT=1 + @docker build . --target tidy --output . .PHONY: init init: - @docker run -t -i -v `pwd`:/src --workdir /src --rm golang:${UTIL_TAG} /usr/local/go/bin/go mod init + export DOCKER_BUILDKIT=1 + @docker build . --target mod-init --output .