FROM maven:3-eclipse-temurin-11 AS builder COPY pom.xml pom.parent.xml /app/ COPY src/main /app/src/main/ WORKDIR /app RUN mvn --batch-mode --define java.net.useSystemProxies=true -Dapache-jsp.scope=compile package ######################################################################################## FROM tomcat:10-jdk11 RUN apt-get update && \ apt-get install -y --no-install-recommends \ curl \ fonts-noto-cjk \ libgd3 \ && \ rm -rf /var/lib/apt/lists/* # Build Graphviz from source because there are no binary distributions for recent versions ARG GRAPHVIZ_VERSION ARG GRAPHVIZ_BUILD_DIR=/tmp/graphiz-build RUN apt-get update && \ apt-get install -y --no-install-recommends \ build-essential \ jq \ libexpat1-dev \ libgd-dev \ zlib1g-dev \ && \ mkdir -p $GRAPHVIZ_BUILD_DIR && \ cd $GRAPHVIZ_BUILD_DIR && \ GRAPHVIZ_VERSION=${GRAPHVIZ_VERSION:-$(curl -s https://gitlab.com/api/v4/projects/4207231/releases/ | jq -r '.[] | .name' | sort -V -r | head -1)} && \ curl -o graphviz.tar.gz https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/${GRAPHVIZ_VERSION}/graphviz-${GRAPHVIZ_VERSION}.tar.gz && \ tar -xzf graphviz.tar.gz && \ cd graphviz-$GRAPHVIZ_VERSION && \ ./configure && \ make && \ make install && \ apt-get remove -y \ build-essential \ jq \ libexpat1-dev \ libgd-dev \ zlib1g-dev \ && \ apt-get autoremove -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ rm -rf $GRAPHVIZ_BUILD_DIR COPY docker-entrypoint.tomcat.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENV WEBAPP_PATH=$CATALINA_HOME/webapps RUN rm -rf $WEBAPP_PATH && \ mkdir -p $WEBAPP_PATH COPY --from=builder /app/target/plantuml.war /plantuml.war # Openshift https://docs.openshift.com/container-platform/4.9/openshift_images/create-images.html#images-create-guide-openshift_create-images RUN chgrp -R 0 $CATALINA_HOME && chmod -R g=u $CATALINA_HOME ENTRYPOINT ["/entrypoint.sh"] CMD ["catalina.sh", "run"]