FROM tomcat:9-jre17-temurin-jammy
# From: https://hub.docker.com/_/tomcat/
# The default Tomcat environment in the image is:
# CATALINA_BASE:   /usr/local/tomcat
# CATALINA_HOME:   /usr/local/tomcat
# CATALINA_TMPDIR: /usr/local/tomcat/temp
# JRE_HOME:        /usr
# CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
# The configuration files are available in /usr/local/tomcat/conf/.

ENV CATALINA_BASE=/usr/local/tomcat
ENV CATALINA_HOME=/usr/local/tomcat

WORKDIR /root
ENV HOME /root

RUN apt-get -y update \
 && apt-get -y install apt-utils unzip

ENV WEBAPP_DIR=/webapps/vlkb-siav2

RUN mkdir -p ${WEBAPP_DIR}
ARG VLKB_VERSION
COPY vlkb-siav2-${VLKB_VERSION}.war ${WEBAPP_DIR}/
RUN cd ${WEBAPP_DIR} && unzip vlkb-siav2-${VLKB_VERSION}.war

# Tomcat must load postgresql DB driver, vlkb-siav2 does not explicitely load it
COPY deps/postgresql-*.jar ${CATALINA_BASE}/lib/

# config open access on 8080 port
COPY deps/server.xml deps/server-connector.xml* ${CATALINA_BASE}/conf/
# config logginf
COPY deps/siav2.logging.properties ${CATALINA_BASE}/conf/
COPY deps/setenv.sh ${CATALINA_BASE}/bin/

# modif permissions to allow run as non-root: may need to config TSL and ROOT-CONTEXT
WORKDIR ${CATALINA_BASE}
RUN chmod -R a+rwX conf

# enable config at start-up
RUN chmod a+rw ${WEBAPP_DIR}/WEB-INF/web.xml \
 && chmod a+rw ${WEBAPP_DIR}/WEB-INF/classes/search.properties \
 && chmod a+rw ${WEBAPP_DIR}/WEB-INF/classes/formatresponsefilter.properties

# set default
env DISCOVERY_CONTEXT_ROOT=datasets

# configure during start-up
COPY start-siav2.sh /root

# run

RUN chmod +rx /root && chmod +rx /root/start-siav2.sh
USER 1000:1000
CMD ["sh", "-c", "/root/start-siav2.sh"]

