Добавлен 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>
This commit is contained in:
174
README_DOCKER.md
Normal file
174
README_DOCKER.md
Normal file
@@ -0,0 +1,174 @@
|
||||
# 🐳 Запуск через 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. **Настроить мониторинг** логов и метрик
|
||||
Reference in New Issue
Block a user