31 lines
1.0 KiB
Docker
31 lines
1.0 KiB
Docker
# ---------- 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"] |