FROM golang:1.17.1-alpine3.14 as builder ARG ARCH ARG LDFLAGS RUN adduser -D -g 65532 -u 65532 appuser \ && mkdir /build \ && apk add --no-cache ca-certificates WORKDIR /build COPY go.mod go.mod COPY go.sum go.sum RUN go mod download COPY cmd/pve-csr-approver-manager/main.go main.go COPY pkg/approver/ pkg/approver RUN CGO_ENABLED=0 GOOS=linux GOARCH=$ARCH GO111MODULE=on go build -trimpath -gcflags 'all=-e' -ldflags "$LDFLAGS" -o pve-csr-approver main.go FROM scratch COPY --from=builder /etc/passwd /etc/passwd COPY --from=builder /etc/ssl/cert.pem /etc/ssl/cert.pem COPY --from=builder /build/pve-csr-approver /pve-csr-approver # appuser USER 65532 ENTRYPOINT ["/pve-csr-approver"]