4.1 KiB
4.1 KiB
Docker команды для Telegram Bot Project
Новая архитектура: БОТ → API → БД
🚀 Быстрый старт
# Запуск только 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
📦 Отдельные компоненты
# Только база данных
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
🔧 Управление
# Остановка всех сервисов
docker-compose down
# Пересборка и запуск
docker-compose --profile all up --build -d
# Удаление данных
docker-compose down -v
Логи и мониторинг
# Просмотр логов всех сервисов
docker-compose logs
# Логи конкретного сервиса
docker-compose logs -f app
docker-compose logs -f postgres
# Статус сервисов
docker-compose ps
Управление сервисами
# Перезапуск сервиса
docker-compose restart app
# Остановка конкретного сервиса
docker-compose stop app
# Масштабирование (если нужно)
docker-compose up --scale app=2 -d
Работа с контейнерами
# Выполнение команд в контейнере приложения
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"
Отладка и разработка
# Запуск в режиме разработки (с 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
Очистка и обслуживание
# Удаление неиспользуемых образов
docker image prune
# Удаление всех остановленных контейнеров
docker container prune
# Полная очистка Docker системы
docker system prune -a
# Просмотр использования места
docker system df
Готовые скрипты
Скрипт для быстрого запуска (start.sh)
#!/bin/bash
echo "Запуск Telegram Bot API..."
docker-compose up --build -d
echo "API доступно по адресу: http://localhost:8000"
echo "Документация: http://localhost:8000/docs"
Скрипт для остановки (stop.sh)
#!/bin/bash
echo "Остановка Telegram Bot API..."
docker-compose down
echo "Сервисы остановлены"
Скрипт для полного сброса (reset.sh)
#!/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)