# Docker Setup для KonturAI Этот документ содержит инструкции по сборке и запуску приложения KonturAI с использованием Docker. ## Требования - Docker 20.10+ - Docker Compose 2.0+ ## Быстрый старт ### 1. Запуск с Docker Compose (рекомендуется) ```bash # Сборка и запуск всех сервисов docker-compose up --build # Запуск в фоновом режиме docker-compose up -d --build # Остановка сервисов docker-compose down # Остановка с удалением volumes (удалит данные БД) docker-compose down -v ``` ### 2. Ручная сборка и запуск ```bash # Сборка Docker образа docker build -t konturai:latest . # Запуск PostgreSQL docker run -d \ --name konturai-postgres \ -e POSTGRES_DB=konturai \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=password \ -p 5432:5432 \ postgres:15-alpine # Запуск приложения docker run -d \ --name konturai-app \ -p 8080:8080 \ -e SPRING_DATASOURCE_URL=jdbc:postgresql://host.docker.internal:5432/konturai \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=password \ konturai:latest ``` ## Переменные окружения | Переменная | Описание | Значение по умолчанию | | ------------------------------- | --------------- | ---------------------------------------------------------------------- | | `SPRING_DATASOURCE_URL` | URL базы данных | `jdbc:postgresql://postgres:5432/konturai` | | `POSTGRES_USER` | Пользователь БД | `postgres` | | `POSTGRES_PASSWORD` | Пароль БД | `password` | | `SPRING_JPA_HIBERNATE_DDL_AUTO` | Режим DDL | `none` | | `JAVA_OPTS` | JVM параметры | `-Xmx512m -Xms256m -XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0` | ## Порты - **8080** - Spring Boot приложение - **5432** - PostgreSQL база данных ## Health Checks Приложение включает health checks для мониторинга состояния: - **Приложение**: `http://localhost:8080/actuator/health` - **PostgreSQL**: автоматическая проверка готовности БД ## Логи ```bash # Просмотр логов приложения docker-compose logs app # Просмотр логов БД docker-compose logs postgres # Следить за логами в реальном времени docker-compose logs -f app ``` ## Разработка ### Hot Reload (для разработки) Для разработки с автоматической пересборкой при изменениях: ```bash # Запуск только БД docker-compose up postgres # Запуск приложения локально с подключением к Docker БД ./mvnw spring-boot:run ``` ### Отладка ```bash # Подключение к контейнеру приложения docker exec -it konturai-app sh # Подключение к БД docker exec -it konturai-postgres psql -U postgres -d konturai ``` ## Производственное развертывание ### Безопасность 1. Измените пароли по умолчанию 2. Используйте secrets для чувствительных данных 3. Настройте SSL/TLS 4. Ограничьте сетевой доступ ### Масштабирование ```bash # Запуск нескольких экземпляров приложения docker-compose up --scale app=3 ``` ### Мониторинг Рекомендуется добавить: - Prometheus для метрик - Grafana для визуализации - ELK Stack для логов ## Troubleshooting ### Проблемы с подключением к БД 1. Убедитесь, что PostgreSQL запущен и готов 2. Проверьте переменные окружения 3. Проверьте сетевые настройки Docker ### Проблемы с памятью 1. Увеличьте лимиты памяти в `JAVA_OPTS` 2. Настройте swap если необходимо ### Проблемы с портами 1. Убедитесь, что порты 8080 и 5432 свободны 2. Измените порты в docker-compose.yml при необходимости