feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile
- Добавлена колонка 'Тип' во все таблицы истории сборок - Для push операций отображается registry вместо платформ - Сохранение пользователя при создании push лога - Исправлена ошибка с logger в push_docker_image endpoint - Улучшено отображение истории сборок с визуальными индикаторами
This commit is contained in:
219
docs/web-interface-docker.md
Normal file
219
docs/web-interface-docker.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# Запуск веб-интерфейса в Docker
|
||||
|
||||
**Автор:** Сергей Антропов
|
||||
**Сайт:** https://devops.org.ru
|
||||
|
||||
## 🐳 Быстрый старт
|
||||
|
||||
### 1. Запуск через docker-compose
|
||||
|
||||
```bash
|
||||
cd app
|
||||
make up
|
||||
# или
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 2. Проверка статуса
|
||||
|
||||
```bash
|
||||
make status
|
||||
# или
|
||||
docker-compose ps
|
||||
```
|
||||
|
||||
### 3. Просмотр логов
|
||||
|
||||
```bash
|
||||
make logs
|
||||
# или
|
||||
docker-compose logs -f web
|
||||
```
|
||||
|
||||
### 4. Открыть в браузере
|
||||
|
||||
- Веб-интерфейс: http://localhost:8000
|
||||
- API документация: http://localhost:8000/api/docs
|
||||
|
||||
## 📋 Доступные команды
|
||||
|
||||
```bash
|
||||
make build # Собрать образы
|
||||
make up # Запустить контейнеры
|
||||
make down # Остановить контейнеры
|
||||
make restart # Перезапустить контейнеры
|
||||
make logs # Показать логи веб-интерфейса
|
||||
make logs-all # Показать логи всех сервисов
|
||||
make shell # Открыть shell в контейнере web
|
||||
make shell-celery # Открыть shell в контейнере celery-worker
|
||||
make rebuild # Пересобрать и перезапустить
|
||||
make clean # Очистить контейнеры и volumes
|
||||
make status # Показать статус контейнеров
|
||||
```
|
||||
|
||||
## 🏗️ Архитектура
|
||||
|
||||
### Сервисы
|
||||
|
||||
1. **web** - Веб-интерфейс FastAPI
|
||||
- Порт: 8000
|
||||
- Доступ к Docker socket для управления контейнерами
|
||||
- Монтирование проекта для доступа к roles, molecule
|
||||
|
||||
2. **redis** - Redis для Celery
|
||||
- Порт: 6379
|
||||
- Хранение задач и результатов
|
||||
|
||||
3. **celery-worker** - Celery worker для фоновых задач
|
||||
- Выполнение тестов, деплоев в фоне
|
||||
- Доступ к Docker socket
|
||||
|
||||
4. **celery-beat** - Celery beat для периодических задач
|
||||
- Опционально, для планирования задач
|
||||
|
||||
### Volumes
|
||||
|
||||
- `/workspace` - Весь проект DevOpsLab (монтируется из родительской директории)
|
||||
- `/app` - Код веб-интерфейса (для hot reload)
|
||||
- `/var/run/docker.sock` - Docker socket для управления контейнерами
|
||||
|
||||
### Networks
|
||||
|
||||
- `devopslab-network` - Внутренняя сеть для связи между сервисами
|
||||
|
||||
## 🔧 Настройка
|
||||
|
||||
### Переменные окружения
|
||||
|
||||
Все настройки через переменные окружения в `docker-compose.yml`:
|
||||
|
||||
- `PROJECT_ROOT=/workspace` - Корень проекта
|
||||
- `DOCKER_HOST=unix:///var/run/docker.sock` - Docker socket
|
||||
- `REDIS_URL=redis://redis:6379/0` - Redis для Celery
|
||||
|
||||
### Переопределение для разработки
|
||||
|
||||
Создайте `docker-compose.override.yml` для локальных настроек:
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
web:
|
||||
ports:
|
||||
- "8000:8000"
|
||||
volumes:
|
||||
- ./logs:/app/logs
|
||||
```
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Ошибка: Cannot connect to Docker daemon
|
||||
|
||||
Убедитесь, что Docker socket доступен:
|
||||
```bash
|
||||
ls -la /var/run/docker.sock
|
||||
```
|
||||
|
||||
### Ошибка: Permission denied
|
||||
|
||||
Добавьте пользователя в группу docker:
|
||||
```bash
|
||||
sudo usermod -aG docker $USER
|
||||
```
|
||||
|
||||
Или запустите с sudo (не рекомендуется):
|
||||
```bash
|
||||
sudo docker-compose up -d
|
||||
```
|
||||
|
||||
### Ошибка: Port already in use
|
||||
|
||||
Измените порт в `docker-compose.yml`:
|
||||
```yaml
|
||||
ports:
|
||||
- "8001:8000" # Внешний порт:внутренний порт
|
||||
```
|
||||
|
||||
### Просмотр логов всех сервисов
|
||||
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
### Перезапуск конкретного сервиса
|
||||
|
||||
```bash
|
||||
docker-compose restart web
|
||||
docker-compose restart celery-worker
|
||||
```
|
||||
|
||||
## 📊 Мониторинг
|
||||
|
||||
### Статус контейнеров
|
||||
|
||||
```bash
|
||||
docker-compose ps
|
||||
```
|
||||
|
||||
### Использование ресурсов
|
||||
|
||||
```bash
|
||||
docker stats devopslab-web devopslab-redis devopslab-celery-worker
|
||||
```
|
||||
|
||||
### Логи Redis
|
||||
|
||||
```bash
|
||||
docker-compose logs redis
|
||||
```
|
||||
|
||||
## 🔄 Обновление
|
||||
|
||||
### Обновление кода
|
||||
|
||||
```bash
|
||||
# Остановить
|
||||
make down
|
||||
|
||||
# Обновить код (git pull, etc.)
|
||||
|
||||
# Пересобрать и запустить
|
||||
make rebuild
|
||||
```
|
||||
|
||||
### Обновление зависимостей
|
||||
|
||||
```bash
|
||||
# Отредактировать requirements.txt
|
||||
# Пересобрать образ
|
||||
make rebuild
|
||||
```
|
||||
|
||||
## 🧹 Очистка
|
||||
|
||||
### Очистка контейнеров и volumes
|
||||
|
||||
```bash
|
||||
make clean
|
||||
```
|
||||
|
||||
### Очистка образов
|
||||
|
||||
```bash
|
||||
docker-compose down --rmi all
|
||||
```
|
||||
|
||||
### Полная очистка
|
||||
|
||||
```bash
|
||||
make clean
|
||||
docker system prune -a
|
||||
```
|
||||
|
||||
## 📝 Примечания
|
||||
|
||||
- Веб-интерфейс имеет доступ к Docker socket для управления контейнерами тестирования
|
||||
- Весь проект монтируется в `/workspace` для доступа к roles, molecule, etc.
|
||||
- Redis данные сохраняются в volume `redis-data`
|
||||
- Для разработки используйте `docker-compose.override.yml`
|
||||
Reference in New Issue
Block a user