# Stage 1: Build # Using JDK 11 as it has better compatibility with Java 8 source code FROM maven:3.8.5-openjdk-11 AS build WORKDIR /app # Copy only pom.xml first to cache dependencies COPY pom.xml . RUN mvn dependency:go-offline -B # Copy source and build COPY src ./src RUN mvn clean package -DskipTests # Stage 2: Run (Tomcat 9 is correct for Java 8/11 and javax.servlet) FROM tomcat:9.0-jdk11-openjdk # Standard port adjustment for Hugging Face/Cloud environments RUN sed -i 's/port="8080"/port="7860"/' /usr/local/tomcat/conf/server.xml # Wipe default apps to prevent conflicts RUN rm -rf /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/ROOT.war # Copy the built WAR from the build stage # Your pom.xml defines MyWebApp, so it will be MyWebApp.war COPY --from=build /app/target/MyWebApp.war /usr/local/tomcat/webapps/ROOT.war EXPOSE 7860 ENV PORT 7860 CMD ["catalina.sh", "run"]