FROM tomcat:11.0.13-jre21-temurin-jammy

ARG TOMCAT_DIR=/usr/local/tomcat
ARG SET_ENV_FILE=/usr/local/tomcat/bin/setenv.sh
ARG USER_UID=5000
ARG USER_GID=${USER_UID}
ARG CATALINA_HOME=${TOMCAT_DIR}

COPY log4j2.properties ${TOMCAT_DIR}/shared/conf/
COPY webappplatform.properties ${TOMCAT_DIR}/shared/conf/
COPY magiclab.war ${TOMCAT_DIR}/webapps/

RUN sed -i -E ' \
    s|appender\.console\.layout\.pattern *=.*|appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%t] %c{3} %C{3}.%M(%F:%L) - %m%n|; \
    s|logger\.(.*)\.appenderRef\.file\.ref *= *file|logger.\1.appenderRef.file.ref = file\nlogger.\1.appenderRef.console.ref = console|; \
    s|rootLogger\.appenderRef\.stdout\.ref *= *console|rootLogger.appenderRef.console.ref = console\nrootLogger.appenderRef.file.ref = file| \
    ' ${TOMCAT_DIR}/shared/conf/log4j2.properties && \
    sed -i "s|shared\.loader=*$|shared\.loader=\"\${catalina.base}/shared/conf\"|" ${CATALINA_HOME}/conf/catalina.properties && \
    echo 'export JAVA_OPTS="$JAVA_OPTS ${WEBAPP_PROPERTIES}"' >> ${SET_ENV_FILE} && \
    echo 'export CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.desktop/javax.swing.text=ALL-UNNAMED"' >> ${SET_ENV_FILE} && \
    chmod o+x ${SET_ENV_FILE} && \
    groupadd --gid ${USER_GID} tomcat && \
    useradd -r --uid ${USER_UID} --gid ${USER_GID} -s /sbin/nologin -d ${TOMCAT_DIR} -c "Tomcat user" tomcat && \
    chown -R tomcat:tomcat ${TOMCAT_DIR} && \
    chown -R root:root ${TOMCAT_DIR}/bin/*.sh && \
    rm -rf webapps.dist && \
	apt-get update -y && \
	apt-get upgrade -y && \
    apt install dialog apt-utils -y && \
    echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \
    apt-get install ttf-mscorefonts-installer -y && \
	apt-get clean

USER tomcat

EXPOSE 8080

CMD ["catalina.sh", "run"]

