FROM brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/devtools/go-toolset-rhel7:1.11.13-10 AS build-env

ENV GOPATH=/tmp/go 
ENV GOOS=linux
ENV CGO_ENABLED=0

RUN mkdir -p /tmp/go/src/github.com/rh-messaging/activemq-artemis-operator/bin
RUN mkdir -p /tmp/activemq-artemis-operator

WORKDIR /tmp/go/src/github.com/rh-messaging
COPY src /tmp/go/src/github.com/rh-messaging/activemq-artemis-operator

RUN /opt/rh/go-toolset-1.11/root/usr/bin/go build -o /tmp/activemq-artemis-operator/activemq-artemis-operator /tmp/go/src/github.com/rh-messaging/activemq-artemis-operator/cmd/manager


FROM brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/ubi7:7.7-140

ENV OPERATOR=/home/activemq-artemis-operator/bin/activemq-artemis-operator
ENV USER_UID=1000
ENV USER_NAME=activemq-artemis-operator
ENV CGO_ENABLED=0
ENV GOPATH=/tmp/go
ENV JBOSS_IMAGE_NAME="amq7/amq-broker-operator"
ENV JBOSS_IMAGE_VERSION="0.9"

WORKDIR /
RUN mkdir -p /manifests/0.9.1 && chown -R `id -u`:0 /manifests
COPY --from=build-env /tmp/activemq-artemis-operator /home/activemq-artemis-operator/bin
COPY --from=build-env /tmp/go/src/github.com/rh-messaging/activemq-artemis-operator/build/bin/entrypoint /home/activemq-artemis-operator/bin
COPY --from=build-env /tmp/go/src/github.com/rh-messaging/activemq-artemis-operator/deploy/catalog_resources/redhat/amq-broker.package.yaml /manifests
COPY --from=build-env /tmp/go/src/github.com/rh-messaging/activemq-artemis-operator/deploy/catalog_resources/redhat/amq-broker-operator.v0.9.1.clusterserviceversion.yaml /manifests/0.9.1
COPY --from=build-env /tmp/go/src/github.com/rh-messaging/activemq-artemis-operator/deploy/crds/* /manifests/0.9.1

RUN useradd activemq-artemis-operator
RUN mkdir -p /home/activemq-artemis-operator/bin && chown -R `id -u`:0 /home/activemq-artemis-operator/bin && chmod -R 755 /home/activemq-artemis-operator/bin

USER ${USER_UID}
ENTRYPOINT ["/home/activemq-artemis-operator/bin/entrypoint"]

LABEL \
      com.redhat.component="amq-broker-operator-container"  \
      com.redhat.delivery.appregistry="true" \
      description="Red Hat AMQ Broker 7.5 Operator"  \
      io.k8s.description="An associated operator that handles broker installation, updates and scaling."  \
      io.k8s.display-name="Red Hat AMQ Broker 7.5 Operator"  \
      io.openshift.expose-services=""  \
      io.openshift.s2i.scripts-url="image:///usr/local/s2i"  \
      io.openshift.tags="messaging,amq,integration,operator,golang"  \
      maintainer="Roddie Kieley <rkieley@redhat.com>"  \
      name="amq7/amq-broker-operator" \
      summary="Red Hat AMQ Broker 7.5 Operator"  \
      version="0.9"
