Files
2025-09-12 10:07:05 +05:00

153 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 при необходимости