JAVAPROGLIB Telegram 6992
🎯 Spring Boot + Docker Compose: пошаговая интеграция

В проде редко гоняют приложения напрямую — почти всегда через Docker. А с появлением spring-boot-docker-compose интеграция стала проще: можно поднимать всю инфраструктуру (Postgres, Redis, Kafka и т.д.) одной командой вместе с приложением.

1️⃣ Подготовка зависимостей

В Spring Boot 3.1 добавили официальный стартер:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-docker-compose</artifactId>
<scope>runtime</scope>
</dependency>

ИЛИ

dependencies {
runtimeOnly("org.springframework.boot:spring-boot-docker-compose")
}


2️⃣ docker-compose.yml

Определим инфраструктуру (например, Postgres + pgAdmin):
version: '3.8'
services:
postgres:
image: postgres:16-alpine
container_name: app-postgres
environment:
POSTGRES_DB: app
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data

pgadmin:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: secret
ports:
- "8081:80"
depends_on:
- postgres

volumes:
postgres_data:


3️⃣ Автоматическая интеграция

Spring Boot сам подтянет конфигурацию из docker-compose.yml. Просто укажите профиль:
./mvnw spring-boot:run -Dspring.profiles.active=compose


или
./gradlew bootRun --args='--spring.profiles.active=compose'


При старте Boot поднимет контейнеры и подставит spring.datasource.url, username, password.

4️⃣ Кастомизация application-compose.yml

Если нужны дополнительные параметры — кладём их в src/main/resources/application-compose.yml:
spring:
datasource:
hikari:
maximum-pool-size: 5


5️⃣ Полезные приёмы

— Фиксируйте версии образов, а не latest (для воспроизводимости).

— Healthcheck в docker-compose.yml помогает Boot ждать готовности контейнера.

— Можно запускать docker compose up -d руками, если не хотите, чтобы Boot сам управлял контейнерами.

— Для CI/CD обычно используют отдельные docker-compose.override.yml или Helm чарты, но для дев-окружения spring-boot-docker-compose очень экономит время.

Ставьте 👍🏼, если нужен более подробный пост про настройку docker-compose.yml

🐸 Библиотека джависта

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥1👏1



tgoop.com/javaproglib/6992
Create:
Last Update:

🎯 Spring Boot + Docker Compose: пошаговая интеграция

В проде редко гоняют приложения напрямую — почти всегда через Docker. А с появлением spring-boot-docker-compose интеграция стала проще: можно поднимать всю инфраструктуру (Postgres, Redis, Kafka и т.д.) одной командой вместе с приложением.

1️⃣ Подготовка зависимостей

В Spring Boot 3.1 добавили официальный стартер:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-docker-compose</artifactId>
<scope>runtime</scope>
</dependency>

ИЛИ

dependencies {
runtimeOnly("org.springframework.boot:spring-boot-docker-compose")
}


2️⃣ docker-compose.yml

Определим инфраструктуру (например, Postgres + pgAdmin):
version: '3.8'
services:
postgres:
image: postgres:16-alpine
container_name: app-postgres
environment:
POSTGRES_DB: app
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data

pgadmin:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: secret
ports:
- "8081:80"
depends_on:
- postgres

volumes:
postgres_data:


3️⃣ Автоматическая интеграция

Spring Boot сам подтянет конфигурацию из docker-compose.yml. Просто укажите профиль:
./mvnw spring-boot:run -Dspring.profiles.active=compose


или
./gradlew bootRun --args='--spring.profiles.active=compose'


При старте Boot поднимет контейнеры и подставит spring.datasource.url, username, password.

4️⃣ Кастомизация application-compose.yml

Если нужны дополнительные параметры — кладём их в src/main/resources/application-compose.yml:
spring:
datasource:
hikari:
maximum-pool-size: 5


5️⃣ Полезные приёмы

— Фиксируйте версии образов, а не latest (для воспроизводимости).

— Healthcheck в docker-compose.yml помогает Boot ждать готовности контейнера.

— Можно запускать docker compose up -d руками, если не хотите, чтобы Boot сам управлял контейнерами.

— Для CI/CD обычно используют отдельные docker-compose.override.yml или Helm чарты, но для дев-окружения spring-boot-docker-compose очень экономит время.

Ставьте 👍🏼, если нужен более подробный пост про настройку docker-compose.yml

🐸 Библиотека джависта

#Enterprise

BY Библиотека джависта | Java, Spring, Maven, Hibernate




Share with your friend now:
tgoop.com/javaproglib/6992

View MORE
Open in Telegram


Telegram News

Date: |

The Channel name and bio must be no more than 255 characters long Unlimited number of subscribers per channel Channel login must contain 5-32 characters Telegram users themselves will be able to flag and report potentially false content. Activate up to 20 bots
from us


Telegram Библиотека джависта | Java, Spring, Maven, Hibernate
FROM American