3 Commits

Author SHA1 Message Date
xds
90f1a3ce08 build 2025-10-31 17:38:48 +03:00
xds
f1b3fb34bd build 2025-10-31 17:33:49 +03:00
xds
5d8bfa236d build 2025-10-31 17:24:29 +03:00
4 changed files with 9 additions and 25 deletions

View File

@@ -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 FROM eclipse-temurin:17-jre AS runtime
WORKDIR /app WORKDIR /app
# (Опционально) установим curl для HEALTHCHECK # (Опционально) установить curl для healthcheck
USER root USER root
RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* 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 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 RUN mkdir -p /app/static && chown -R app:app /app
USER 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" ENV JAVA_TOOL_OPTIONS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0"
EXPOSE 8080 EXPOSE 8080
HEALTHCHECK --interval=20s --timeout=3s --retries=3 CMD curl -fsS http://localhost:8080/actuator/health || exit 1 HEALTHCHECK --interval=20s --timeout=3s --retries=3 CMD curl -fsS http://localhost:8080/actuator/health || exit 1
ENTRYPOINT ["java", "-jar", "/app/app.jar"] ENTRYPOINT ["java", "-jar", "/app/app.jar"]

Binary file not shown.

View File

@@ -21,7 +21,7 @@ class BearerTokenFilter(
private val publicMatchers = listOf( private val publicMatchers = listOf(
AntPathRequestMatcher("/auth/login", "POST"), AntPathRequestMatcher("/auth/login", "POST"),
AntPathRequestMatcher("/auth/register", "POST"), AntPathRequestMatcher("/auth/register", "POST"),
AntPathRequestMatcher("/auth/tgLogin", "POST"), AntPathRequestMatcher("/auth/tg-login", "POST"),
AntPathRequestMatcher("/actuator/**"), AntPathRequestMatcher("/actuator/**"),
AntPathRequestMatcher("/static/**"), AntPathRequestMatcher("/static/**"),
AntPathRequestMatcher("/wishlistexternal/**"), AntPathRequestMatcher("/wishlistexternal/**"),

View File

@@ -31,7 +31,7 @@ class SecurityConfig(
.logout { it.disable() } .logout { it.disable() }
.authorizeHttpRequests { .authorizeHttpRequests {
it.requestMatchers(HttpMethod.POST, "/auth/login", "/auth/register", "/auth/tgLogin").permitAll() it.requestMatchers(HttpMethod.POST, "/auth/login", "/auth/register", "/auth/tg-login").permitAll()
it.requestMatchers("/actuator/**", "/static/**").permitAll() it.requestMatchers("/actuator/**", "/static/**").permitAll()
it.requestMatchers("/wishlistexternal/**").permitAll() it.requestMatchers("/wishlistexternal/**").permitAll()
it.requestMatchers("/swagger-ui/**", "/swagger-ui.html", "/v3/api-docs/**").permitAll() it.requestMatchers("/swagger-ui/**", "/swagger-ui.html", "/v3/api-docs/**").permitAll()