FROM --platform=$TARGETPLATFORM rockylinux:8.6

LABEL author="tier-packaging@internet2.edu <tier-packaging@internet2.edu>" \
      Vendor="TIER" \
      ImageType="Grouper" \
      ImageName=$imagename \
      ImageOS=centos7

ARG GROUPER_CONTAINER_VERSION

ENV GROUPER_VERSION=5.12.0 \
    GROUPER_CONTAINER_VERSION=5.12.0 \
    JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto \
    PATH=$PATH:$JAVA_HOME/bin \
    GROUPER_HOME=/opt/grouper/grouperWebapp/WEB-INF

RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime \
    && echo "NETWORKING=yes" > /etc/sysconfig/network
RUN rm -fr /var/cache/yum/* && dnf clean all && dnf -y --allowerasing install --setopt=tsflags=nodocs epel-release && dnf -y update && \
    dnf -y --allowerasing install net-tools wget curl tar unzip mlocate logrotate strace telnet man vim rsyslog cron mod_ssl dos2unix cronie && \
    dnf clean all

RUN dnf update -y \
    && dnf --allowerasing install -y logrotate python3-pip rsync sudo patch wget tar unzip dos2unix file \
    && pip3 install --upgrade setuptools \
    && dnf clean -y all \
    && groupadd -r tomcat \
    && useradd -r -m -s /sbin/nologin -g tomcat tomcat \
    && mkdir -p /opt/container_files

# Install Corretto Java JDK
#Corretto download page: https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html

ARG JAVA_VERSION=1.8.0


COPY container_files/docker-build-bin /opt/container_files/docker-build-bin/
COPY container_files/morphString.properties /opt/container_files/
COPY container_files/grouper.installer.properties /opt/container_files/
RUN mkdir /opt/container_files/java-corretto
COPY container_files/java-corretto/corretto-signing-key.pub /opt/container_files/java-corretto
COPY container_files/tier-support /opt/container_files/tier-support/
RUN cd /tmp \
    && chmod +x /opt/container_files/docker-build-bin/*.sh \
    && /opt/container_files/docker-build-bin/containerDockerfileInstallDos2unix.sh /opt/container_files \
    && /opt/container_files/docker-build-bin/containerDockerfileInstallJava.sh  $JAVA_VERSION \
    && /opt/container_files/docker-build-bin/containerDockerfileInstallGrouper.sh $JAVA_HOME $GROUPER_VERSION 


# real copy command (if not caching), uncomment this and change comments of COPY above to work on install script
COPY container_files/ /opt/container_files/

RUN cd /tmp \
    && chmod +x /opt/container_files/docker-build-bin/*.sh \
    && /opt/container_files/docker-build-bin/containerDockerfileInstallDos2unix.sh /opt/container_files \
    && /opt/container_files/docker-build-bin/containerDockerfileInstall.sh $JAVA_HOME $GROUPER_VERSION


# testing container
# see output with  docker build . --tag my:grouper
# DOCKER_BUILDKIT=0 docker build --progress=plain -t mygrouper .
# docker run --detach --name mygrouper mygrouper:latest
# docker exec -it mygrouper bash

WORKDIR /opt/grouper/grouperWebapp/WEB-INF/
EXPOSE 80 443
HEALTHCHECK NONE

#ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

# LOCAL start uncomment ping, and comment out other entrypoint to just have a simple runnable container
ENTRYPOINT ["ping"]
CMD ["google.com"]
# LOCAL end