FROM ubi8-minimal:8-released AS builder

ENV GOPATH=/go

# Catch US Dockerfile changes that need to be propagated DS
ENV US_DOCKERFILE_MD5=74a7283f4beda53136d36c8f992f7160

RUN echo -e "[virt]\nname=virt\nprofiles=\nstate=enabled\nstream=8.0.0" > /etc/dnf/modules.d/virt.module && \
    microdnf install -y tar git sed go-compilers-golang-compiler

COPY containerized-data-importer-*.tar.gz /                                     
RUN mkdir -p /go/src/kubevirt.io/containerized-data-importer && \               
    tar -xzf containerized-data-importer-*.tar.gz --strip-components 1 \        
        -C /go/src/kubevirt.io/containerized-data-importer && \                 
    cd /go/src/kubevirt.io/containerized-data-importer && \                     
    echo "$US_DOCKERFILE_MD5  hack/build/docker/cdi-importer/Dockerfile" > .md5sums && \
    md5sum -c .md5sums && rm .md5sums && \
    ./hack/build/build-go.sh build cmd/cdi-importer

FROM ubi8-minimal:8-released
COPY --from=builder /etc/dnf/modules.d/virt.module /etc/dnf/modules.d/virt.module
COPY --from=builder /go/src/kubevirt.io/containerized-data-importer/_out/cmd/cdi-importer/cdi-importer /usr/bin/virt-cdi-importer
RUN VIRT_PKGS="qemu-img qemu-kvm-block-curl" && \
    PKGS="skopeo tar" && \
    microdnf -y --setopt=tsflags=nodocs install $PKGS && \
    microdnf -y --setopt=tsflags=nodocs install $VIRT_PKGS && \
    microdnf clean all && \
    rpm -V $PKGS
RUN microdnf install -y util-linux && microdnf clean all
ENTRYPOINT [ "/usr/bin/virt-cdi-importer", "-alsologtostderr" ]

LABEL com.redhat.component="virt-cdi-importer-container" \
      name="container-native-virtualization/virt-cdi-importer" \
      version="v2.0.0" \
      release="27" \
      summary="Data fetching service" \
      io.openshift.expose-services="" \
      io.openshift.tags="data,images" \
      io.k8s.display-name="virt-cdi-importer" \
      maintainer="The KubeVirt Project <kubevirt-dev@googlegroups.com" \
      description="Data fetching service for CNV images"
