Compare commits
5 Commits
90f1a3ce08
...
aaa12fcb86
| Author | SHA1 | Date | |
|---|---|---|---|
| aaa12fcb86 | |||
| cef82c483f | |||
| e83e3a2b65 | |||
| c68e6afb8a | |||
| 10b7c730ad |
30
Dockerfile
30
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
|
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, собранный ло123кально
|
||||||
|
COPY *.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"]
|
||||||
9
deploy.sh
Executable file
9
deploy.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
./gradlew bootJar || exit 1
|
||||||
|
|
||||||
|
scp build/libs/*.jar root@213.226.71.138:/root/luminic/space/back/app.jar
|
||||||
|
|
||||||
|
ssh root@213.226.71.138 "
|
||||||
|
cd /root/luminic/space/back &&
|
||||||
|
docker compose up -d --build
|
||||||
|
"
|
||||||
@@ -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/**"),
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ server.port=8089
|
|||||||
server.servlet.context-path=/api
|
server.servlet.context-path=/api
|
||||||
#spring.webflux.base-path=/api
|
#spring.webflux.base-path=/api
|
||||||
|
|
||||||
spring.profiles.active=prod
|
spring.profiles.active=dev
|
||||||
spring.main.web-application-type=servlet
|
spring.main.web-application-type=servlet
|
||||||
|
|
||||||
server.compression.enabled=true
|
server.compression.enabled=true
|
||||||
|
|||||||
Reference in New Issue
Block a user