FROM --platform=$TARGETPLATFORM entplus.jfrog.io/jfrog-docker/jfrog/echo-base:20260710 AS base

LABEL maintainer=infra@jfrog.com

ARG TARGETARCH


ENV uname=jfbus \
    gname=jfbus \
    JF_PRODUCT_DATA_INTERNAL=/var/opt/jfrog/jfbus \
    JF_PRODUCT_HOME=/opt/jfrog/jfbus \
    JF_PRODUCT_APP=/opt/jfrog/jfbus/app \
    TARGETARCH=${TARGETARCH} \
    RECOMMENDED_MAX_OPEN_FILES=32000 \
    MIN_MAX_OPEN_FILES=10000 \
    RECOMMENDED_MAX_OPEN_PROCESSES=1024

USER root

RUN groupadd -g 1127 jfbus \
    && useradd -Ms /bin/bash -g jfbus -u 1127 jfbus

FROM base AS builder

USER root

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/

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

FROM base

USER root

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

COPY --chown=${uname}:${gname} --from=builder ${JF_PRODUCT_HOME} ${JF_PRODUCT_HOME}

# Handle permissions and ownership in ${JF_PRODUCT_HOME}/app
RUN mkdir -p ${JF_PRODUCT_DATA_INTERNAL}/etc/security && \
    ln -s ${JF_PRODUCT_DATA_INTERNAL} ${JF_PRODUCT_HOME}/var && \
    chown -R ${uname}:${gname} ${JF_PRODUCT_HOME} ${JF_PRODUCT_DATA_INTERNAL} && \
    chmod -R 755 ${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 ${uname}

VOLUME ${JF_PRODUCT_DATA_INTERNAL}

WORKDIR ${JF_PRODUCT_HOME}

ENTRYPOINT ["/usr/local/bin/fips-entrypoint.sh","/opt/jfrog/jfbus/app/bin/entrypoint-jfbus.sh"]
