Files
jaxwsdemo/Dockerfile

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