# ── Etapa 1: build ────────────────────────────────────────────── FROM eclipse-temurin:17-jdk-alpine AS build WORKDIR /app # Copiamos wrapper y descriptores primero (cache de capas) COPY gradlew gradlew.bat ./ COPY gradle/ gradle/ COPY build.gradle settings.gradle ./ # Descargamos dependencias sin copiar aún el código fuente RUN chmod +x gradlew && ./gradlew dependencies --no-daemon -q || true # Ahora copiamos el código y construimos el jar COPY src/ src/ RUN ./gradlew bootJar -x test --no-daemon # ── Etapa 2: runtime ───────────────────────────────────────────── FROM eclipse-temurin:17-jre-alpine WORKDIR /app # Usuario no root por seguridad RUN addgroup -S oracion && adduser -S oracion -G oracion USER oracion COPY --from=build /app/build/libs/*.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"]