FROM ubi8-minimal:8-released AS builder
ENV GOPATH=/go
RUN microdnf install -y tar gzip go-compilers-golang-compiler 

COPY node-maintenance-operator-*.tar.gz /
RUN mkdir -p /go/src/kubevirt.io/node-maintenance-operator && \
    tar -xzf node-maintenance-operator-*.tar.gz --strip-components 1 \
        -C /go/src/kubevirt.io/node-maintenance-operator && \
    rm node-maintenance-operator-*.tar.gz 

WORKDIR /go/src/kubevirt.io/node-maintenance-operator/
RUN GOOS=linux GOARCH=amd64 go build -i -o /node-maintenance-operator ./cmd/manager

FROM ubi8-minimal:8-released
ENV ENTRYPOINT=/entrypoint \
    OPERATOR=/node-maintenance-operator \
    USER_UID=1001 \
    USER_NAME=node-maintenance-operator
COPY --from=builder /go/src/kubevirt.io/node-maintenance-operator/build/bin/user_setup /user_setup
RUN /user_setup
COPY --from=builder /node-maintenance-operator ${OPERATOR}
COPY --from=builder /go/src/kubevirt.io/node-maintenance-operator/build/bin/entrypoint ${ENTRYPOINT}
ENTRYPOINT ${ENTRYPOINT}
USER ${USER_UID}
LABEL com.redhat.component="node-maintenance-operator-container" \
      name="container-native-virtualization/node-maintenance-operator" \
      version="v2.0.0" \
      summary="Node Maintenance Operator" \
      io.openshift.expose-services="" \
      io.openshift.tags="cnv,operator,maintenance" \
      io.k8s.display-name="node-maintenance-operator" \
      maintainer="The KubeVirt Project <kubevirt-dev@googlegroups.com>" \
      description="Node Maintenance Operator"
