FROM entplus.jfrog.io/jfrog-docker/jfrog/ubi-micro/base/router:9.7.1762965531 as base
LABEL maintainer=infra@jfrog.com
LABEL name=jfrog/platformfederation

ARG TARGETARCH
ARG HTTP=8017
ARG GRPC=8018

ENV uname=router \
    gname=router \
    JF_PRODUCT_DATA_INTERNAL=/var/opt/jfrog/platformfederation \
    JF_PRODUCT_HOME=/opt/jfrog/platformfederation \
    TARGETARCH=${TARGETARCH:-arm64} \
    HTTP=${HTTP} \
    GRPC=${GRPC}

FROM base as builder

USER root

COPY ./bin/jf-platformfederation-linux-${TARGETARCH} ${JF_PRODUCT_HOME}/app/platformfederation/bin/platformfederation
COPY ./app/doc/JFrog-Platform-Federation-Third-Parties-Usage-About-Box.html ${JF_PRODUCT_HOME}/app/doc/JFrog-Platform-Federation-Third-Parties-Usage-About-Box.html

RUN chmod -R 775 ${JF_PRODUCT_HOME}/app/platformfederation/bin/* && chown -R ${uname}:${gname} ${JF_PRODUCT_HOME}

FROM base

USER root

# Copy scripts
COPY --chown=${uname}:${uname} Dockerfile /docker/platformfederation/
COPY --chown=${uname}:${uname} entrypoint-platformfederation.sh ${JF_PRODUCT_HOME}/app/bin/
RUN chmod +x ${JF_PRODUCT_HOME}/app/bin/entrypoint-platformfederation.sh

COPY --from=builder $JF_PRODUCT_HOME $JF_PRODUCT_HOME

RUN mkdir -p ${JF_PRODUCT_DATA_INTERNAL}/etc/security && \
    chown -R ${uname}:${gname} ${JF_PRODUCT_HOME} ${JF_PRODUCT_DATA_INTERNAL} && \
    chmod -R 775 ${JF_PRODUCT_HOME} ${JF_PRODUCT_DATA_INTERNAL} && \
    ln -s ${JF_PRODUCT_DATA_INTERNAL} ${JF_PRODUCT_HOME}/var

EXPOSE ${HTTP} ${GRPC}

USER ${uname}

WORKDIR ${JF_PRODUCT_HOME}

ENTRYPOINT ["/opt/jfrog/platformfederation/app/bin/entrypoint-platformfederation.sh"]