github.com/hairyhenderson/gomplate/v4@v4.0.0-pre-2.0.20240520121557-362f058f0c93/Dockerfile (about) 1 # syntax=docker/dockerfile:1.6-labs 2 FROM --platform=linux/amd64 golang:1.22-alpine AS build 3 4 ARG TARGETOS 5 ARG TARGETARCH 6 ARG TARGETVARIANT 7 ENV GOOS=$TARGETOS GOARCH=$TARGETARCH 8 9 RUN apk add --no-cache make git 10 11 WORKDIR /go/src/github.com/hairyhenderson/gomplate 12 COPY go.mod /go/src/github.com/hairyhenderson/gomplate 13 COPY go.sum /go/src/github.com/hairyhenderson/gomplate 14 15 RUN --mount=type=cache,id=go-build-${TARGETOS}-${TARGETARCH}${TARGETVARIANT},target=/root/.cache/go-build \ 16 --mount=type=cache,id=go-pkg-${TARGETOS}-${TARGETARCH}${TARGETVARIANT},target=/go/pkg \ 17 go mod download -x 18 19 COPY . /go/src/github.com/hairyhenderson/gomplate 20 21 RUN --mount=type=cache,id=go-build-${TARGETOS}-${TARGETARCH}${TARGETVARIANT},target=/root/.cache/go-build \ 22 --mount=type=cache,id=go-pkg-${TARGETOS}-${TARGETARCH}${TARGETVARIANT},target=/go/pkg \ 23 make build 24 RUN mv bin/gomplate* /bin/ 25 26 FROM scratch AS gomplate-linux 27 28 ARG VCS_REF 29 ARG TARGETOS 30 ARG TARGETARCH 31 ARG TARGETVARIANT 32 33 LABEL org.opencontainers.image.revision=$VCS_REF \ 34 org.opencontainers.image.source="https://github.com/hairyhenderson/gomplate" 35 36 COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt 37 COPY --from=build /bin/gomplate_${TARGETOS}-${TARGETARCH}${TARGETVARIANT} /gomplate 38 39 ENTRYPOINT [ "/gomplate" ] 40 41 FROM alpine:3.19 AS gomplate-alpine 42 43 ARG VCS_REF 44 ARG TARGETOS 45 ARG TARGETARCH 46 ARG TARGETVARIANT 47 48 LABEL org.opencontainers.image.revision=$VCS_REF \ 49 org.opencontainers.image.source="https://github.com/hairyhenderson/gomplate" 50 51 COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt 52 COPY --from=build /bin/gomplate_${TARGETOS}-${TARGETARCH}${TARGETVARIANT} /bin/gomplate 53 54 ENTRYPOINT [ "/bin/gomplate" ] 55 56 FROM --platform=windows/amd64 mcr.microsoft.com/windows/nanoserver:ltsc2022 AS gomplate-windows 57 ARG TARGETOS 58 ARG TARGETARCH 59 ARG TARGETVARIANT 60 COPY --from=build /bin/gomplate_${TARGETOS}-${TARGETARCH}${TARGETVARIANT}.exe /gomplate.exe 61 62 FROM gomplate-$TARGETOS AS gomplate