diff --git a/docker/Dockerfile.soda b/docker/Dockerfile.soda new file mode 100644 index 0000000000000000000000000000000000000000..194153e653da10672826be2279ca3d3c4cbae0e9 --- /dev/null +++ b/docker/Dockerfile.soda @@ -0,0 +1,53 @@ +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"] + diff --git a/docker/Dockerfile.soda.temurin-jammy b/docker/Dockerfile.soda.temurin-jammy new file mode 100644 index 0000000000000000000000000000000000000000..cf05f29ae062ed693a3fc59c3aee603937aaf381 --- /dev/null +++ b/docker/Dockerfile.soda.temurin-jammy @@ -0,0 +1,61 @@ +#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"] + diff --git a/docker/entrypoint.sh.soda b/docker/entrypoint.sh.soda index a35ed8009a2cd90609df3583b811b8d42c28156c..148cdfed64fb3d64e7ef7dfeced784ea747e19d1 100755 --- a/docker/entrypoint.sh.soda +++ b/docker/entrypoint.sh.soda @@ -1,33 +1,16 @@ #!/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