diff --git a/Dockerfile b/Dockerfile index 3185d4e..e163863 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,20 @@ -# ---------- 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 +# (Опционально) установить 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 +# ❗ копируем jar, собранный локально +COPY 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"] \ No newline at end of file + +ENTRYPOINT ["java", "-jar", "/app/app.jar"] \ No newline at end of file