FROM maven:3-jdk-7 AS build ENV BUILD_UID=1000 ENV BUILD=/src ENV MAVEN_HOME=/var/maven RUN mkdir -p $MAVEN_HOME && chown $BUILD_UID $MAVEN_HOME ADD --chown=$BUILD_UID:$BUILD_UID ../legacyworlds-server $BUILD/legacyworlds-server ADD --chown=$BUILD_UID:$BUILD_UID ../legacyworlds-session $BUILD/legacyworlds-session ADD --chown=$BUILD_UID:$BUILD_UID ../legacyworlds-utils $BUILD/legacyworlds-utils ADD --chown=$BUILD_UID:$BUILD_UID ../legacyworlds-web $BUILD/legacyworlds-web ADD --chown=$BUILD_UID:$BUILD_UID pom.xml $BUILD USER $BUILD_UID WORKDIR $BUILD RUN --mount=type=cache,target=$MAVEN_HOME/.m2,uid=$BUILD_UID \ mvn -e -Duser.home=$MAVEN_HOME package USER 0 RUN chown -R root $BUILD FROM openjdk:7u211-jre-alpine AS backend RUN <<EOF set -e mkdir -p /app/state touch /app/data-source.xml chown -R 1000 /app/state /app/data-source.xml EOF COPY --from=build /src/legacyworlds-server/legacyworlds-server-main/target/*.jar /app/server.jar COPY --from=build /src/legacyworlds-server/legacyworlds-server-main/target/lib /app/lib COPY --from=build /src/legacyworlds-server/legacyworlds-server-main/data /app/data ADD docker/backend-entrypoint.sh /app/entrypoint.sh VOLUME /app/state ENTRYPOINT ["/app/entrypoint.sh"] EXPOSE 9137/tcp 9138/tcp CMD ["server"] FROM tomcat:6.0-jre7 AS tomcat-base RUN <<EOF rm -rf /usr/local/tomcat/webapps/* adduser --system --no-create-home \ --ingroup www-data \ --shell /bin/false \ --home $CATALINA_HOME \ tomcat chown -R tomcat: /usr/local/tomcat EOF USER tomcat FROM tomcat-base AS lwmain COPY --from=build \ /src/legacyworlds-web/legacyworlds-web-main/target/*.war \ $CATALINA_HOME/webapps/ROOT.war FROM tomcat-base AS lwadmin COPY --from=build \ /src/legacyworlds-web/legacyworlds-web-admin/target/*.war \ $CATALINA_HOME/webapps/ROOT.war