From 17b5f05bb570240e561d25255cc4748e5f5038cb Mon Sep 17 00:00:00 2001 From: Liosha Date: Sun, 13 Sep 2026 17:08:36 +0200 Subject: [PATCH] demo-monolith add docker-compose.yml and Dockerfile --- Dockerfile | 32 +++++++++++++++++++++++++++++ docker-compose.yml | 17 +++++++++++++++ src/main/resources/application.yaml | 4 ++-- 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4285a93 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +# 1. Этап сборки (Build stage) на базе JDK 26 +FROM eclipse-temurin:26-jdk-alpine AS build + +WORKDIR /app + +# Устанавливаем Node.js и npm, так как плагин node-gradle может попытаться +# скачать или использовать системный node (или настроим его под контейнер) +RUN apk add --no-cache nodejs npm curl bash + +# Копируем всё содержимое проекта +COPY . . + +# Даем права на выполнение Gradle Wrapper +RUN chmod +x gradlew + +# Запускаем кастомные gradle-таски для сборки фронтенда и упаковки бэкенда. +# Плагин node-gradle сам установит нужную версию node/npm внутри сборщика Gradle, +# либо подхватит системный. Используем вашу задачу copyAngularBuild. +RUN ./gradlew copyAngularBuild -x test --no-daemon +RUN ./gradlew bootJar -x test --no-daemon + +# 2. Финальный образ (Runtime stage) - легкий образ с Java 26 JRE +FROM eclipse-temurin:26-jre-alpine + +WORKDIR /app + +# Копируем собранный Spring Boot jar-файл из этапа сборки +COPY --from=build /app/build/libs/*.jar app.jar + +EXPOSE 8080 + +ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..207caf0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,17 @@ +services: + app: + build: . + container_name: monolith_app + ports: + - "8080:8080" + environment: + - SPRING_DATASOURCE_URL=jdbc:postgresql://jambo-postgres:5432/springangulardb + - SPRING_DATASOURCE_USERNAME=springangular_user + - SPRING_DATASOURCE_PASSWORD=postgrespw + - SPRING_DATASOURCE_DRIVER-CLASS-NAME=org.postgresql.Driver + networks: + - jambotron-net + +networks: + jambotron-net: + external: true \ No newline at end of file diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 291a07a..e2a1680 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -2,11 +2,11 @@ spring: application: name: demo-monolith datasource: - url: jdbc:postgresql://localhost:5432/springangulardb + url: jdbc:postgresql://jambo-postgres:5432/springangulardb username: springangular_user password: postgrespw flyway: - url: jdbc:postgresql://localhost:5432/jambotron_dev?options=-c%20timezone=UTC + url: jdbc:postgresql://jambo-postgres:5432/springangulardb?options=-c%20timezone=UTC user: springangular_user password: postgrespw jpa: