Files
diun/hack/vendor.Dockerfile
CrazyMax 91d160dab5 Go 1.16 (#302)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-03-14 14:15:24 +01:00

25 lines
729 B
Docker

# syntax=docker/dockerfile:1.2
ARG GO_VERSION=1.16
FROM golang:${GO_VERSION}-alpine AS base
RUN apk add --no-cache git linux-headers musl-dev
WORKDIR /src
FROM base AS vendored
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/go/pkg/mod \
go mod tidy && go mod download && \
mkdir /out && cp go.mod go.sum /out
FROM scratch AS update
COPY --from=vendored /out /
FROM vendored AS validate
RUN --mount=type=bind,target=.,rw \
git add -A && cp -rf /out/* .; \
if [ -n "$(git status --porcelain -- go.mod go.sum)" ]; then \
echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor-update"'; \
git status --porcelain -- go.mod go.sum; \
exit 1; \
fi