ARG BASE_IMAGE_REGISTRY=entplus.jfrog.io/jfrog-docker
ARG BASE_DOCKER_IMAGE_REGISTRY=docker.jfrog.io
ARG BASE_VERSION=9.7.1762965531

FROM entplus.jfrog.io/jfrog-docker/jfrog/ubi-micro/base/artifactory:${BASE_VERSION} AS base

ARG TARGETARCH

USER root


ENV JFBUS_USER=artifactory
ENV TARGETARCH=$TARGETARCH
ENV JF_PRODUCT_HOME=/opt/jfrog/jfbus
ENV JF_PRODUCT_DATA_INTERNAL=/var/opt/jfrog/jfbus
ENV RECOMMENDED_MAX_OPEN_FILES=32000
ENV MIN_MAX_OPEN_FILES=10000
ENV RECOMMENDED_MAX_OPEN_PROCESSES=1024

FROM base AS builder

RUN mkdir -p ${JF_PRODUCT_HOME}/app/misc/newrelic/

COPY jfbus ${JF_PRODUCT_HOME}/
COPY newrelic.jar ${JF_PRODUCT_HOME}/app/misc/newrelic/
COPY newrelic.template.yml ${JF_PRODUCT_HOME}/app/install/

# Handle permissions and ownership in ${JF_PRODUCT_HOME}/app
RUN chown -R ${USER}:${USER} ${JF_PRODUCT_HOME}/app  && \
    mkdir -p ${JF_PRODUCT_DATA_INTERNAL} && \
    ln -s ${JF_PRODUCT_DATA_INTERNAL} ${JF_PRODUCT_HOME}/var && \
    chown -R ${USER}:${USER} ${JF_PRODUCT_HOME} ${JF_PRODUCT_DATA_INTERNAL}

RUN chmod -R go+w ${JF_PRODUCT_HOME}/app ${JF_PRODUCT_HOME}/app/bin

ARG TARGETARCH

FROM base

ENV JFBUS_USER=artifactory

COPY --chown=${JFBUS_USER}:${JFBUS_USER} jfbus.Dockerfile /docker/jfbus/Dockerfile

COPY --chown=${JFBUS_USER}:${JFBUS_USER} --from=builder ${JF_PRODUCT_HOME} ${JF_PRODUCT_HOME}
COPY --chown=${JFBUS_USER}:${JFBUS_USER} --chmod=755 --from=builder ${JF_PRODUCT_DATA_INTERNAL} ${JF_PRODUCT_DATA_INTERNAL}

ENV JAVA_HOME=${JF_PRODUCT_HOME}/app/third-party/$TARGETARCH/java
ENV YQ_PATH=${JF_PRODUCT_HOME}/app/third-party/$TARGETARCH/yq

USER ${JFBUS_USER}
VOLUME ${JF_PRODUCT_DATA_INTERNAL}
WORKDIR ${JF_PRODUCT_HOME}
ENTRYPOINT ["/opt/jfrog/jfbus/app/bin/entrypoint-jfbus.sh"]
