# ---------- build stage ---------- FROM gradle:jdk17-ubi AS build WORKDIR /app COPY gradlew gradlew COPY gradle gradle COPY build.gradle.kts settings.gradle.kts ./ COPY src src RUN ./gradlew --no-daemon dependencies RUN ./gradlew --no-daemon clean bootJar # ---------- run stage ---------- FROM eclipse-temurin:17.0.16_8-jre AS runtime WORKDIR /app # Create non-root user with a higher UID/GID to avoid conflicts 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 # Настройки JVM (Java 17) ENV JAVA_TOOL_OPTIONS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0" EXPOSE 8080 HEALTHCHECK --interval=20s --timeout=3s --retries=3 CMD wget -qO- http://localhost:8080/actuator/health || exit 1 ENTRYPOINT ["java","-jar","/app/app.jar"]