Commit 55c729d9 authored by Robert Butora's avatar Robert Butora
Browse files

docker: config Tomcat (on Debian11)

parent 78954209
Loading
Loading
Loading
Loading

docker/Dockerfile.soda

0 → 100644
+53 −0
Original line number Diff line number Diff line
FROM debian:bullseye-slim

WORKDIR /root
ENV HOME /root

RUN apt-get -y update \
 && apt-get -y --no-install-recommends install libcfitsio9 \
                  unzip openjdk-17-jre-headless tomcat9 libtcnative-1 ca-certificates

ENV CATALINA_BASE=/var/lib/tomcat9
ENV CATALINA_HOME=/usr/share/tomcat9

RUN rm -rf $CATALINA_BASE/webapps/examples/ \
           $CATALINA_BASE/webapps/docs/ \
           $CATALINA_BASE/webapps/host-manager

ENV WEBAPP_DIR=/webapps/vlkb-soda

COPY deps/ast_9.2.9-1_amd64.deb ./
RUN dpkg -i /root/ast_9.2.9-1_amd64.deb && ldconfig \
 && mkdir -p ${WEBAPP_DIR} \
 && mkdir -p /srv/surveys \
 && mkdir -p /srv/cutouts \
 && mkdir -p /etc/pki/tls

ARG VLKB_VERSION

COPY vlkb-${VLKB_VERSION}.deb ./
COPY vlkb-soda-${VLKB_VERSION}.war ${WEBAPP_DIR}/
RUN dpkg -i vlkb-${VLKB_VERSION}.deb \
 && cd ${WEBAPP_DIR} && unzip vlkb-soda-${VLKB_VERSION}.war \
 && apt-get autoremove && apt-get clean



# configure build instance

ENV INST_DIR=/usr/local

RUN echo "${INST_DIR}/lib" > /etc/ld.so.conf.d/ast.conf && ldconfig

# change webapps-dir and preconfigure port 8080 (no SSL)
COPY deps/server.xml deps/server-connector.xml /etc/tomcat9/

# configure at start-up

COPY entrypoint.sh.soda /root/entrypoint.sh

# run

RUN pwd && chmod +x /root/entrypoint.sh
CMD ["sh", "-c", "/root/entrypoint.sh"]
+61 −0
Original line number Diff line number Diff line
#FROM debian:bullseye-slim
#LABEL description="vlkb tomcat9"
FROM tomcat:9-jre17-temurin-jammy

#ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
#ENV CATALINA_BASE=/var/lib/tomcat9
#ENV CATALINA_HOME=/usr/share/tomcat9
#ENV CATALINA_TMPDIR=/tmp

WORKDIR /root
ENV HOME /root


RUN apt-get -y update \
 && apt-get -y install apt-utils \
 && apt-get -y install libcfitsio-bin libcsv3 time unzip

# Remove the default webapps:
RUN rm -rf /usr/local/tomcat/webapps/examples/ \
           /usr/local/tomcat/webapps/docs/ \
           /usr/local/tomcat/webapps/host-manager


ENV WEBAPP_DIR=/webapps/vlkb-soda


COPY deps/ast_9.2.9-1_amd64.deb ./
RUN dpkg -i /root/ast_9.2.9-1_amd64.deb && ldconfig \
 && mkdir -p ${WEBAPP_DIR} \
 && mkdir -p /srv/surveys && mkdir -p /srv/cutouts \
 && mkdir -p /etc/pki/tls

ARG VLKB_VERSION
COPY vlkb-${VLKB_VERSION}.deb ./
COPY vlkb-soda-${VLKB_VERSION}.war ${WEBAPP_DIR}/
RUN dpkg -i vlkb-${VLKB_VERSION}.deb \
 && cd ${WEBAPP_DIR} && unzip vlkb-soda-${VLKB_VERSION}.war



# configure instance

ENV INST_DIR=/usr/local

RUN echo "${INST_DIR}/lib" > /etc/ld.so.conf.d/ast.conf && ldconfig

# configure during docker build-time

# precofigure port 8080 (no SSL)
COPY deps/server.xml deps/server-connector.xml /usr/local/tomcat/conf/
#COPY deps/server.xml deps/server-connector.xml /etc/tomcat9/

# configure during docker run-time

COPY entrypoint.sh.soda /root/entrypoint.sh

# run

RUN pwd && chmod +x /root/entrypoint.sh
CMD ["sh", "-c", "/root/entrypoint.sh"]
+7 −30
Original line number Diff line number Diff line
#!/bin/bash

set +e
LOG_FILE=/tmp/entrypoint.log

{
date
whoami
env

#########################################################################
echo "SECURITY            : "$SECURITY

echo "ACCESS_CONTEXT_ROOT : "$ACCESS_CONTEXT_ROOT
echo "RESPONSE_FORMAT     : "$RESPONSE_FORMAT
echo "URL_CUTOUTS         : "$URL_CUTOUTS

echo "build-time config'd (Dockefile):"
echo "INST_DIR   : "$INST_DIR
echo "WEBAPP_DIR : "$WEBAPP_DIR

echo "JAVA_HOME       : "$JAVA_HOME
echo "CATALINA_BASE   : "$CATALINA_BASE
echo "CATALINA_HOME   : "$CATALINA_HOME
echo "CATALINA_TMPDIR : "$CATALINA_TMPDIR
#########################################################################


## configure VLKB access
## configure SODA

mkdir -p $CATALINA_BASE/conf/Catalina/localhost
cp $WEBAPP_DIR/META-INF/context.xml $CATALINA_BASE/conf/Catalina/localhost/$ACCESS_CONTEXT_ROOT.xml

echo "fits_path_surveys=/srv/surveys" > $WEBAPP_DIR/WEB-INF/classes/cutout.properties
@@ -55,18 +38,17 @@ echo "fits_path_surveys=/srv/surveys" > $WEBAPP_DIR/WEB-INF/classes/cutout.prope
} >> $WEBAPP_DIR/WEB-INF/classes/cutout.properties



#### Security
## Security

case $SECURITY in
   iamtoken)
      cd $WEBAPP_DIR/WEB-INF/ && rm -f web.xml && cp web-cutout-$SECURITY.xml web.xml && cd -
      cp /etc/pki/tls/server-connector.xml /etc/tomcat9/
      cp /etc/pki/tls/server-connector.xml $CATALINA_BASE/conf
      cp /etc/pki/tls/iamtoken.properties $WEBAPP_DIR/WEB-INF/classes/
      rm -f $WEBAPP_DIR/WEB-INF/lib/jjwt-*0.11*.jar
      ;;
   tsl)
      cp /etc/pki/tls/server-connector.xml /etc/tomcat9/
      cp /etc/pki/tls/server-connector.xml $CATALINA_BASE/conf
      rm -f $WEBAPP_DIR/WEB-INF/lib/jjwt-*.jar
      ;;
   *)
@@ -74,13 +56,8 @@ case $SECURITY in
      ;;
esac

#########################################################################

date
} 1> /tmp/entrypoint.log 2>&1

} 1> $LOG_FILE 2>&1

/usr/libexec/tomcat9/tomcat-start.sh &

wait -n
$CATALINA_HOME/bin/catalina.sh run