Skip to content

rroman31/pgtest

Repository files navigation

Spring Boot Testcontainers Postgres DIND Demo

Демонстрационный проект Spring Boot с использованием Testcontainers для интеграционных тестов с PostgreSQL.

Технологии

  • Spring Boot 3.5.8
  • Java 21
  • PostgreSQL
  • Testcontainers
  • JPA / Hibernate
  • Lombok

Запуск тестов

./gradlew test

Настройка для работы с Docker-in-Docker (DinD)

Проект настроен для работы с удаленным Docker daemon через DinD.

Запуск DinD контейнера

Вариант 1: С изолированной сетью (по умолчанию)

docker run --privileged --name docker-dind -d \
  -p 2375:2375 \
  -e DOCKER_TLS_CERTDIR="" \
  --dns 8.8.8.8 \
  --dns 8.8.4.4 \
  docker:dind

⚠️ При этом варианте Ryuk не сможет подключиться из-за сетевой изоляции. Используйте testcontainers.ryuk.container.enabled=false.

Вариант 2: С host network (для работы Ryuk)

docker run --privileged --name docker-dind -d \
  --network host \
  -e DOCKER_TLS_CERTDIR="" \
  --dns 8.8.8.8 \
  --dns 8.8.4.4 \
  docker:dind

✅ При этом варианте порты будут доступны напрямую на хосте, и Ryuk сможет работать. ⚠️ При использовании --network host флаг -p 2375:2375 не нужен, так как порты уже доступны.

Настройка подключения

Все настройки выполняются через файл src/test/resources/testcontainers.properties:

docker.host=tcp://127.0.0.1:2375
testcontainers.ryuk.container.enabled=false

Для удаленного сервера измените адрес:

docker.host=tcp://192.168.1.100:2375

Проверка работы

После запуска тестов проверьте, что контейнеры запускаются в DinD:

# Контейнеры должны быть видны через DinD
DOCKER_HOST=tcp://127.0.0.1:2375 docker ps

# Контейнеры НЕ должны быть видны через локальный Docker
docker ps | grep testcontainers

Структура проекта

  • src/main/java - основной код приложения
  • src/test/java - тесты с использованием Testcontainers
  • src/test/resources/testcontainers.properties - конфигурация Testcontainers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages