camino-de-oracion/Dockerfile

30 lines
1021 B
Docker

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