FROM tomcat:11.0.25-jdk25-temurin AS build
ARG APP_RELEASE=r1
RUN mkdir /build && chown 10001:10001 /build
COPY --chown=10001:10001 src /build/src
COPY --chown=10001:10001 web /build/web
USER 10001:10001
WORKDIR /build
RUN case "$APP_RELEASE" in r1|r2) ;; *) exit 1;; esac \
 && mkdir -p web/WEB-INF/classes \
 && javac --release 17 -cp /usr/local/tomcat/lib/servlet-api.jar -d web/WEB-INF/classes src/LabServlet.java \
 && printf '%s\n' "$APP_RELEASE" > web/WEB-INF/release.txt \
 && jar --create --file app.war -C web .

FROM tomcat:11.0.25-jdk25-temurin
RUN apt-get update && apt-get install -y --no-install-recommends curl \
 && rm -rf /var/lib/apt/lists/* \
 && mkdir -p /srv/tomcat/conf/Catalina/localhost /srv/tomcat/webapps /srv/tomcat/logs /srv/tomcat/work /srv/tomcat/temp /srv/releases \
 && cp -a /usr/local/tomcat/conf/. /srv/tomcat/conf/ \
 && chown 10001:10001 /srv/tomcat/logs /srv/tomcat/work /srv/tomcat/temp
ENV CATALINA_BASE=/srv/tomcat
ENV CATALINA_OPTS="-Xms128m -Xmx256m"
COPY server.xml logging.properties /srv/tomcat/conf/
COPY app.xml /srv/tomcat/conf/Catalina/localhost/app.xml
COPY --from=build /build/app.war /srv/releases/app.war
USER 10001:10001
EXPOSE 8080
CMD ["catalina.sh", "run"]
