35 lines
865 B
Docker
35 lines
865 B
Docker
# ============================================================
|
|
# Stage 1: Build con Maven
|
|
# ============================================================
|
|
FROM maven:3.9-eclipse-temurin-25 AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Copiar solo el pom primero para aprovechar la caché de capas
|
|
COPY pom.xml .
|
|
RUN mvn dependency:go-offline -q
|
|
|
|
# Copiar el código fuente y compilar
|
|
COPY src ./src
|
|
RUN mvn package -DskipTests -q
|
|
|
|
# ============================================================
|
|
# Stage 2: Runtime mínimo (solo JRE)
|
|
# ============================================================
|
|
FROM eclipse-temurin:25-jre-noble
|
|
|
|
WORKDIR /app
|
|
|
|
# Usuario no-root por seguridad
|
|
RUN groupadd --system rcapp && useradd --system --gid rcapp rcapp
|
|
|
|
COPY --from=builder /app/target/*.jar app.jar
|
|
|
|
RUN chown rcapp:rcapp app.jar
|
|
|
|
USER rcapp
|
|
|
|
EXPOSE 8080
|
|
|
|
ENTRYPOINT ["java", "-jar", "app.jar"]
|