File size: 923 Bytes
e3cdb23
 
 
 
39e5a7a
e3cdb23
 
 
39e5a7a
e3cdb23
 
 
39e5a7a
e3cdb23
 
39e5a7a
e3cdb23
 
39e5a7a
e3cdb23
 
39e5a7a
e3cdb23
 
 
39e5a7a
 
e3cdb23
39e5a7a
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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 <finalName>MyWebApp</finalName>, 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"]