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

175 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐳 Запуск через Docker Compose
## Быстрый старт
1. **Клонировать репозиторий:**
```bash
git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git
cd tg_bot_language
```
2. **Настроить переменные окружения:**
```bash
cp .env.example .env
nano .env # или используйте любой редактор
```
Заполните обязательные поля в `.env`:
```env
BOT_TOKEN=ваш_telegram_bot_token
OPENAI_API_KEY=ваш_openai_api_key
```
3. **Запустить:**
```bash
docker-compose up -d
```
4. **Проверить логи:**
```bash
docker-compose logs -f bot
```
## Управление
### Запуск
```bash
docker-compose up -d
```
### Остановка
```bash
docker-compose down
```
### Перезапуск
```bash
docker-compose restart
```
### Пересборка после изменений
```bash
docker-compose up -d --build
```
### Просмотр логов
```bash
# Все сервисы
docker-compose logs -f
# Только бот
docker-compose logs -f bot
# Только база данных
docker-compose logs -f db
```
### Статус контейнеров
```bash
docker-compose ps
```
## Работа с базой данных
### Подключение к PostgreSQL
```bash
docker-compose exec db psql -U botuser -d language_bot
```
### Бэкап базы данных
```bash
docker-compose exec db pg_dump -U botuser language_bot > backup.sql
```
### Восстановление из бэкапа
```bash
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`:
```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. Проверьте логи:
```bash
docker-compose logs bot
```
2. Проверьте, что база данных запущена:
```bash
docker-compose ps db
```
3. Проверьте переменные окружения в `.env`
### База данных недоступна
```bash
# Проверить статус
docker-compose ps db
# Перезапустить базу
docker-compose restart db
# Проверить логи
docker-compose logs db
```
### Очистка и полный перезапуск
```bash
# Остановить и удалить контейнеры
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. **Настроить мониторинг** логов и метрик