FROM entplus.jfrog.io/jfrog-docker/jfrog/ubi-micro/base/artifactory:9.6.1754345610 AS base
LABEL maintainer=infra@jfrog.com
USER root
ARG TARGETARCH
ENV JF_JFBUS_USER=artifactory \
    JF_PRODUCT_HOME=/opt/jfrog/jfbus \
    RECOMMENDED_MAX_OPEN_FILES=32000 \
    MIN_MAX_OPEN_FILES=10000 \
    RECOMMENDED_MAX_OPEN_PROCESSES=1024 \
    TARGETARCH=${TARGETARCH}

FROM base AS builder
RUN mkdir -p ${JF_PRODUCT_HOME}/var/log
RUN mkdir -p ${JF_PRODUCT_HOME}/app/doc
RUN mkdir -p ${JF_PRODUCT_HOME}/app/third-party/
RUN mkdir -p ${JF_PRODUCT_HOME}/app/install/
RUN mkdir -p ${JF_PRODUCT_HOME}/app/misc/newrelic/

COPY bin ${JF_PRODUCT_HOME}/app/bin
COPY JFrog-Jfbus-Usage-About-Box.html ${JF_PRODUCT_HOME}/app/doc
COPY third-party-$TARGETARCH/ ${JF_PRODUCT_HOME}/app/third-party/
COPY installerCommon.sh ${JF_PRODUCT_HOME}/app/install/
COPY systemYamlHelper.sh ${JF_PRODUCT_HOME}/app/install/
COPY newrelic.jar ${JF_PRODUCT_HOME}/app/misc/newrelic/
COPY newrelic.template.yml ${JF_PRODUCT_HOME}/app/install/

RUN chown -R ${JF_JFBUS_USER}:${JF_JFBUS_USER} ${JF_PRODUCT_HOME}/var
RUN chown -R ${JF_JFBUS_USER}:${JF_JFBUS_USER} ${JF_PRODUCT_HOME}/app
RUN chmod -R +x ${JF_PRODUCT_HOME}/app/third-party/java/bin
RUN chmod -R +x ${JF_PRODUCT_HOME}/app/third-party/yq
RUN chmod -R go+w ${JF_PRODUCT_HOME}/app ${JF_PRODUCT_HOME}/app/bin

FROM base
ENV JF_JFBUS_USER=artifactory
# Copy scripts
COPY --chown=${JF_JFBUS_USER}:${JF_JFBUS_USER} Dockerfile /docker/jfbus/
COPY --chown=${JF_JFBUS_USER}:${JF_JFBUS_USER} entrypoint-jfbus.sh ${JF_PRODUCT_HOME}/app/bin/
RUN chmod +x ${JF_PRODUCT_HOME}/app/bin/entrypoint-jfbus.sh

COPY --chown=${JF_JFBUS_USER}:${JF_JFBUS_USER} --from=builder ${JF_PRODUCT_HOME} ${JF_PRODUCT_HOME}

# The user that will run the container and jfbus
USER ${JF_JFBUS_USER}

# Change workdir to Jfbus Home
WORKDIR ${JF_PRODUCT_HOME}

# Start the simple standalone mode of jfbus
ENTRYPOINT ["/opt/jfrog/jfbus/app/bin/entrypoint-jfbus.sh"]