FROM eclipse-temurin:17 as jre-build

# Create a custom Java runtime
RUN $JAVA_HOME/bin/jlink \
         --add-modules ALL-MODULE-PATH \
         --strip-debug \
         --no-man-pages \
         --no-header-files \
         --compress=2 \
         --output /javaruntime

# Define base image and copy in jlink created minimal Java 17 environment
FROM debian:buster-slim
ENV JAVA_HOME=/opt/java/openjdk
ENV PATH "${JAVA_HOME}/bin:${PATH}"
COPY --from=jre-build /javaruntime $JAVA_HOME

RUN apt-get -y update && apt-get install -y bash nano wget apt-utils libfreetype6 fontconfig fonts-dejavu

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
RUN unlink /etc/localtime || true
RUN ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata
RUN unlink /etc/localtime || true
RUN ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

WORKDIR /usr/local/app

COPY ./vcell-web/target/vcell-web-0.0.1-SNAPSHOT.jar \
     ./vcell-web/target/maven-jars/*.jar \
     ./lib/

COPY ./pythonVtk ./pythonVtk
COPY ./nativelibs/linux64 ./nativelibs/linux64
COPY ./docker/build/vcell-web.log4j.xml .

ENV softwareVersion=SOFTWARE-VERSION-NOT-SET \
	serverid=SITE \
	dburl="db-url-not-set" \
    dbdriver="db-driver-not-set" \
    dbuser="db-user-not-set" \
    export_baseurl="export-baseurl-not-set" \
    simdatadir_external=/path/to/external/simdata/ \
    simdataCacheSize="simdataCacheSize-not-set" \
    webDataPort="webDataPort-not-set"

ENV dbpswdfile=/run/secrets/dbpswd \
    keystore=/run/secrets/keystorefile \
    keystorepswdfile=/run/secrets/keystorepswd
    

VOLUME /simdata
VOLUME /simdata_secondary
VOLUME /exportdir

EXPOSE 8000

ENTRYPOINT java \
    -Xdebug -agentlib:jdwp=transport=dt_socket,address=*:8000,server=y,suspend=n \
	-XX:MaxRAMPercentage=100 \
#	-XX:+PrintFlagsFinal -XshowSettings:vm \
    -Djava.awt.headless=true \
	-Dvcell.softwareVersion="${softwareVersion}" \
	-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager \
	-Dlog4j.configurationFile=/usr/local/app/vcell-web.log4j.xml \
	-Dvcell.server.id="${serverid}" \
	-Dvcell.server.dbConnectURL="${dburl}" \
	-Dvcell.server.dbDriverName="${dbdriver}" \
	-Dvcell.server.dbUserid="${dbuser}" \
	-Dvcell.db.pswdfile="${dbpswdfile}" \
	-Dvcell.python.executable=/usr/bin/python \
	-Dvcell.primarySimdatadir.internal=/simdata \
	-Dvcell.secondarySimdatadir.internal=/simdata_secondary \
	-Dvcell.primarySimdatadir.external="${simdatadir_external}" \
	-Dvcell.simdataCacheSize="${simdataCacheSize}" \
	-Dvcell.export.baseDir.internal=/exportdir \
	-Dvcell.export.baseURL="${export_baseurl}" \
	-Dvcell.installDir=/usr/local/app \
	-Dvcellapi.keystore.file="${keystore}" \
	-Dvcellapi.keystore.pswdfile="${keystorepswdfile}" \
	-Dvcelldata.web.server.port=${webDataPort} \
	-cp "./lib/*" org.vcell.web.MainService
	
    