dockerfile

This commit is contained in:
root
2025-09-12 10:07:05 +05:00
parent b4455b7024
commit 90f009b97c
4 changed files with 339 additions and 0 deletions
+152
View File
@@ -0,0 +1,152 @@
# 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 при необходимости