Files
tg_bot_language/README_DOCKER.md
mamonov.ep f7847226d0 Добавлен Docker Compose для простого развёртывания
Создано:
- Dockerfile для контейнеризации бота
- docker-compose.yml с сервисами bot и db
- .dockerignore для оптимизации образа
- README_DOCKER.md с подробной документацией

Изменено:
- README.md - добавлена секция Docker
- .env.example - добавлены переменные PostgreSQL

Теперь бот можно запустить одной командой:
docker-compose up -d

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 11:16:14 +03:00

3.8 KiB
Raw Permalink Blame History

🐳 Запуск через Docker Compose

Быстрый старт

  1. Клонировать репозиторий:
git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git
cd tg_bot_language
  1. Настроить переменные окружения:
cp .env.example .env
nano .env  # или используйте любой редактор

Заполните обязательные поля в .env:

BOT_TOKEN=ваш_telegram_bot_token
OPENAI_API_KEY=ваш_openai_api_key
  1. Запустить:
docker-compose up -d
  1. Проверить логи:
docker-compose logs -f bot

Управление

Запуск

docker-compose up -d

Остановка

docker-compose down

Перезапуск

docker-compose restart

Пересборка после изменений

docker-compose up -d --build

Просмотр логов

# Все сервисы
docker-compose logs -f

# Только бот
docker-compose logs -f bot

# Только база данных
docker-compose logs -f db

Статус контейнеров

docker-compose ps

Работа с базой данных

Подключение к PostgreSQL

docker-compose exec db psql -U botuser -d language_bot

Бэкап базы данных

docker-compose exec db pg_dump -U botuser language_bot > backup.sql

Восстановление из бэкапа

docker-compose exec -T db psql -U botuser language_bot < backup.sql

Структура Docker

Сервисы

  • db - PostgreSQL 15 (база данных)

    • Порт: 5432
    • Volume: postgres_data для персистентности
    • Health check для проверки готовности
  • bot - Telegram бот (Python приложение)

    • Зависит от db
    • Автоматический рестарт
    • Логи в ./logs

Volumes

  • postgres_data - данные PostgreSQL (персистентные)
  • ./logs - логи бота (на хосте)

Переменные окружения

Полный список переменных в .env:

# Обязательные
BOT_TOKEN=your_token              # Токен от @BotFather
OPENAI_API_KEY=your_key           # API ключ OpenAI

# PostgreSQL (можно оставить по умолчанию)
POSTGRES_USER=botuser
POSTGRES_PASSWORD=botpassword
POSTGRES_DB=language_bot

# Настройки
DEBUG=True

Troubleshooting

Бот не запускается

  1. Проверьте логи:
docker-compose logs bot
  1. Проверьте, что база данных запущена:
docker-compose ps db
  1. Проверьте переменные окружения в .env

База данных недоступна

# Проверить статус
docker-compose ps db

# Перезапустить базу
docker-compose restart db

# Проверить логи
docker-compose logs db

Очистка и полный перезапуск

# Остановить и удалить контейнеры
docker-compose down

# Удалить volumes (ВНИМАНИЕ: удалит все данные!)
docker-compose down -v

# Пересобрать и запустить
docker-compose up -d --build

Production рекомендации

  1. Изменить пароли БД в .env
  2. Отключить DEBUG: DEBUG=False
  3. Настроить регулярные бэкапы БД
  4. Использовать Docker secrets для чувствительных данных
  5. Настроить мониторинг логов и метрик