FROM golang:1.17.4-alpine3.15 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-cloud-controller-manager/main.go main.go
COPY pkg/pvecloud/ pkg/pvecloud/
RUN CGO_ENABLED=0 GOOS=linux GOARCH=$ARCH GO111MODULE=on go build -trimpath -gcflags 'all=-e' -ldflags "$LDFLAGS" -o /pve-cloud-controller main.go
FROM scratch
COPY --from=builder /etc/passwd /etc/group /etc/
COPY --from=builder /etc/ssl/cert.pem /etc/ssl/
COPY --from=builder /pve-cloud-controller /
# appuser
USER 65532
ENTRYPOINT ["/pve-cloud-controller"]
