150 lines
4.1 KiB
Markdown
150 lines
4.1 KiB
Markdown
# Docker команды для Telegram Bot Project
|
||
|
||
## Новая архитектура: БОТ → API → БД
|
||
|
||
### 🚀 Быстрый старт
|
||
|
||
```bash
|
||
# Запуск только API + БД (для разработки)
|
||
docker-compose --profile api up -d
|
||
|
||
# Запуск всех компонентов (API + БОТ + ВЕБ)
|
||
docker-compose --profile all up -d
|
||
|
||
# Разработка с hot reload
|
||
docker-compose -f docker-compose.dev.yml up -d
|
||
```
|
||
|
||
### 📦 Отдельные компоненты
|
||
|
||
```bash
|
||
# Только база данных
|
||
docker-compose up postgres -d
|
||
|
||
# Только API сервер (обращается к БД)
|
||
docker-compose --profile api up api -d
|
||
|
||
# Только бот (обращается к API)
|
||
docker-compose --profile bot up bot -d
|
||
|
||
# Только веб-панель (обращается к API)
|
||
docker-compose --profile web up web -d
|
||
```
|
||
|
||
### 🔧 Управление
|
||
|
||
```bash
|
||
# Остановка всех сервисов
|
||
docker-compose down
|
||
|
||
# Пересборка и запуск
|
||
docker-compose --profile all up --build -d
|
||
|
||
# Удаление данных
|
||
docker-compose down -v
|
||
```
|
||
|
||
### Логи и мониторинг
|
||
```bash
|
||
# Просмотр логов всех сервисов
|
||
docker-compose logs
|
||
|
||
# Логи конкретного сервиса
|
||
docker-compose logs -f app
|
||
docker-compose logs -f postgres
|
||
|
||
# Статус сервисов
|
||
docker-compose ps
|
||
```
|
||
|
||
### Управление сервисами
|
||
```bash
|
||
# Перезапуск сервиса
|
||
docker-compose restart app
|
||
|
||
# Остановка конкретного сервиса
|
||
docker-compose stop app
|
||
|
||
# Масштабирование (если нужно)
|
||
docker-compose up --scale app=2 -d
|
||
```
|
||
|
||
### Работа с контейнерами
|
||
```bash
|
||
# Выполнение команд в контейнере приложения
|
||
docker-compose exec app bash
|
||
docker-compose exec app python -c "from database.database import test_db_connection; print(test_db_connection())"
|
||
|
||
# Подключение к PostgreSQL
|
||
docker-compose exec postgres psql -U postgres -d telegram_bot
|
||
|
||
# Просмотр таблиц
|
||
docker-compose exec postgres psql -U postgres -d telegram_bot -c "\dt"
|
||
```
|
||
|
||
### Отладка и разработка
|
||
```bash
|
||
# Запуск в режиме разработки (с volume для кода)
|
||
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d
|
||
|
||
# Просмотр переменных окружения в контейнере
|
||
docker-compose exec app env
|
||
|
||
# Проверка сетевого подключения
|
||
docker-compose exec app ping postgres
|
||
```
|
||
|
||
### Очистка и обслуживание
|
||
```bash
|
||
# Удаление неиспользуемых образов
|
||
docker image prune
|
||
|
||
# Удаление всех остановленных контейнеров
|
||
docker container prune
|
||
|
||
# Полная очистка Docker системы
|
||
docker system prune -a
|
||
|
||
# Просмотр использования места
|
||
docker system df
|
||
```
|
||
|
||
## Готовые скрипты
|
||
|
||
### Скрипт для быстрого запуска (start.sh)
|
||
```bash
|
||
#!/bin/bash
|
||
echo "Запуск Telegram Bot API..."
|
||
docker-compose up --build -d
|
||
echo "API доступно по адресу: http://localhost:8000"
|
||
echo "Документация: http://localhost:8000/docs"
|
||
```
|
||
|
||
### Скрипт для остановки (stop.sh)
|
||
```bash
|
||
#!/bin/bash
|
||
echo "Остановка Telegram Bot API..."
|
||
docker-compose down
|
||
echo "Сервисы остановлены"
|
||
```
|
||
|
||
### Скрипт для полного сброса (reset.sh)
|
||
```bash
|
||
#!/bin/bash
|
||
echo "ВНИМАНИЕ: Это удалит все данные из базы!"
|
||
read -p "Продолжить? (y/N) " -n 1 -r
|
||
echo
|
||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||
docker-compose down -v
|
||
docker-compose up --build -d
|
||
echo "Система сброшена и перезапущена"
|
||
fi
|
||
```
|
||
|
||
## Полезные ссылки после запуска
|
||
|
||
- API: http://localhost:8000
|
||
- Swagger UI: http://localhost:8000/docs
|
||
- ReDoc: http://localhost:8000/redoc
|
||
- Health Check: http://localhost:8000/health
|
||
- pgAdmin: http://localhost:5050 (если запущен с профилем admin) |