Files
luminic-space-back-v2/Dockerfile
2025-10-31 15:48:55 +03:00

36 lines
1.4 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ---------- build stage ----------
FROM gradle:8.9.0-jdk17-alpine AS build
WORKDIR /app
# Копируем wrapper + его папку (важно, что это две разные сущности)
COPY --chown=gradle:gradle gradlew ./gradlew
COPY --chown=gradle:gradle gradle/ ./gradle/
# Копируем скрипты сборки и исходники
COPY --chown=gradle:gradle build.gradle.kts settings.gradle.kts ./
COPY --chown=gradle:gradle src ./src
# Делаем gradlew исполняемым
RUN chmod +x gradlew
# Подкачаем зависимости (кэшируется) и соберём jar
RUN ./gradlew --no-daemon dependencies
RUN ./gradlew --no-daemon clean bootJar
# ---------- run stage ----------
FROM eclipse-temurin:17-jre AS runtime
WORKDIR /app
# (Опционально) установим curl для HEALTHCHECK
USER root
RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/*
RUN groupadd --system --gid 1001 app && useradd --system --gid app --uid 1001 --shell /bin/bash --create-home app
RUN mkdir -p /app/static && chown -R app:app /app
USER app
COPY --from=build /app/build/libs/*.jar /app/app.jar
ENV JAVA_TOOL_OPTIONS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0"
EXPOSE 8080
HEALTHCHECK --interval=20s --timeout=3s --retries=3 CMD curl -fsS http://localhost:8080/actuator/health || exit 1
ENTRYPOINT ["java","-jar","/app/app.jar"]