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