Multiarch build cli docker images (#634)

This commit is contained in:
6543
2021-12-21 16:51:23 +01:00
committed by GitHub
parent bed69f9f72
commit c2b0c1d73e
5 changed files with 62 additions and 35 deletions

View File

@@ -1,16 +0,0 @@
# docker build --rm -f docker/Dockerfile.cli -t woodpeckerci/woodpecker-cli .
# use golang image to copy ssl certs later
FROM golang:1.16
FROM scratch
# copy certs from golang:1.16 image
COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
ENV GODEBUG=netdns=go
ADD dist/cli/linux_amd64/woodpecker-cli /bin/
HEALTHCHECK CMD ["/bin/woodpecker-cli", "ping"]
ENTRYPOINT ["/bin/woodpecker-cli"]

View File

@@ -1,11 +0,0 @@
# docker build --rm -f docker/Dockerfile.cli.alpine -t woodpeckerci/woodpecker-cli .
FROM alpine:3.14
RUN apk add -U --no-cache ca-certificates
ENV GODEBUG=netdns=go
ADD dist/cli/linux_amd64/woodpecker-cli /bin/
HEALTHCHECK CMD ["/bin/woodpecker-cli", "ping"]
ENTRYPOINT ["/bin/woodpecker-cli"]

View File

@@ -0,0 +1,17 @@
FROM --platform=$BUILDPLATFORM golang:1.16 AS build
WORKDIR /src
COPY . .
ARG TARGETOS TARGETARCH
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg \
make build-cli
FROM alpine:3.14
RUN apk add -U --no-cache ca-certificates
ENV GODEBUG=netdns=go
COPY --from=build src/dist/woodpecker-cli /bin/
HEALTHCHECK CMD ["/bin/woodpecker-cli", "ping"]
ENTRYPOINT ["/bin/woodpecker-cli"]

View File

@@ -0,0 +1,19 @@
FROM --platform=$BUILDPLATFORM golang:1.16 AS build
WORKDIR /src
COPY . .
ARG TARGETOS TARGETARCH
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg \
make build-cli
FROM scratch
ENV GODEBUG=netdns=go
# copy certs from golang:1.16 image
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
# copy cli binary
COPY --from=build src/dist/woodpecker-cli /bin/
HEALTHCHECK CMD ["/bin/woodpecker-cli", "ping"]
ENTRYPOINT ["/bin/woodpecker-cli"]