# 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"]