FROM golang:1.16 as builder WORKDIR /go/src/app RUN os=$(go env GOOS) &&\ arch=$(go env GOARCH) &&\ curl -sL https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_${os}_${arch}.tar.gz | tar -xz -C /tmp/ &&\ mv /tmp/kubebuilder_2.3.2_${os}_${arch} /usr/local/kubebuilder &&\ export PATH=$PATH:/usr/local/kubebuilder/bin COPY . . RUN make test &&\ make manager # Use distroless as minimal base image to package the manager binary # Refer to https://github.com/GoogleContainerTools/distroless for more details FROM gcr.io/distroless/static:latest COPY --from=builder /go/src/app/manager . USER 1000 ENTRYPOINT ["/manager"]