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 # 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 # configure during start-up COPY start-siav2.sh /root # create empty to be able to volume-bind at start-up ENV STARTUP_LOG=/tmp/start-siav2.log RUN echo " " > ${STARTUP_LOG} # install webapp 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 # 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 \ && chmod a+rw ${STARTUP_LOG} # run RUN chmod +rx /root && chmod +rx /root/start-siav2.sh USER 1000:1000 CMD ["/root/start-siav2.sh"]