52 lines
1.1 KiB
Docker
52 lines
1.1 KiB
Docker
# Multi-stage Dockerfile for JAX-WS Hello World Service
|
|
|
|
# Stage 1: Test the application
|
|
FROM maven:3.8.6-openjdk-8 AS tester
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Copy pom.xml and download dependencies (for better caching)
|
|
COPY pom.xml .
|
|
RUN mvn dependency:go-offline -B
|
|
|
|
# Copy source code
|
|
COPY src ./src
|
|
|
|
# Run tests
|
|
RUN mvn test
|
|
|
|
# Stage 2: Build the application
|
|
FROM maven:3.8.6-openjdk-8 AS builder
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Copy pom.xml and download dependencies (for better caching)
|
|
COPY pom.xml .
|
|
RUN mvn dependency:go-offline -B
|
|
|
|
# Copy source code
|
|
COPY src ./src
|
|
|
|
# Build the application
|
|
RUN mvn clean package -DskipTests
|
|
|
|
# Stage 3: Run the application
|
|
FROM tomcat:9.0-jdk8
|
|
|
|
# Remove default Tomcat applications
|
|
RUN rm -rf /usr/local/tomcat/webapps/*
|
|
|
|
# Copy the WAR file from builder stage
|
|
COPY --from=builder /app/target/jaxws-hello-world.war /usr/local/tomcat/webapps/jaxws-hello-world.war
|
|
|
|
# Copy Tomcat configuration (optional - for manager access)
|
|
COPY tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml
|
|
|
|
# Expose Tomcat port
|
|
EXPOSE 8080
|
|
|
|
# Start Tomcat
|
|
CMD ["catalina.sh", "run"]
|