4.9 KiB
4.9 KiB
Полная инструкция по развертыванию SalvageDB Bot в Docker контейнере.
Требования
- Docker Engine 20.10+
- Docker Compose 2.0+
- Минимум 512 MB RAM
- Доступ к Oracle Database
🚀 Быстрый старт
1. Настройка конфигурации
Отредактируйте docker-compose.yml, заменив placeholder значения:
environment:
# Telegram Bot (обязательно)
- BOT_TOKEN=your_actual_bot_token_here
- ADMIN_USER_ID=your_telegram_user_id
# Oracle Database (обязательно)
- db_user=your_actual_db_user
- db_password=your_actual_db_password
- db_dsn=your_db_host:1521/service_name
2. Создание директорий
mkdir -p logs images data
chmod 755 logs images data # Linux/macOS
3. Запуск
# Сборка и запуск
docker-compose up --build -d
# Проверка статуса
docker-compose ps
# Просмотр логов
docker-compose logs -f salvagedb-bot
Структура проекта
salvagedb_bot/
├── Dockerfile # Docker образ
├── docker-compose.yml # Конфигурация
├── docker-entrypoint.sh # Инициализация
├── main.py # Основной код
├── db.py # Работа с БД
├── logs/ # Логи (volume)
├── images/ # Изображения (volume)
└── data/ # Доп. данные (volume)
Конфигурация переменных
| Переменная | Описание | По умолчанию |
|---|---|---|
BOT_TOKEN |
Токен от @BotFather | ⚠️ Обязательно |
ADMIN_USER_ID |
ID администратора | ⚠️ Обязательно |
db_user |
Пользователь Oracle | ⚠️ Обязательно |
db_password |
Пароль Oracle | ⚠️ Обязательно |
db_dsn |
DSN Oracle | ⚠️ Обязательно |
DECODE_PRICE |
Цена декодирования | 1 |
CHECK_PRICE |
Цена проверки | 10 |
IMG_PRICE |
Цена фото | 100 |
DEBUG |
Режим отладки | 0 |
Управление контейнером
Основные команды
# Запуск/остановка
docker-compose up -d
docker-compose down
docker-compose restart
# Логи и мониторинг
docker-compose logs -f salvagedb-bot
docker stats salvagedb-telegram-bot
# Подключение к контейнеру
docker-compose exec salvagedb-bot bash
Обновление
# Обновить код и пересобрать
git pull
docker-compose down
docker-compose up --build -d
📊 Логирование
- Расположение:
./logs/salvagedb_bot.log - Ротация: ежедневно
- Хранение: 30 дней
- Формат:
YYYY-MM-DD HH:MM:SS - module - LEVEL - message
Устранение проблем
Проверка Oracle подключения
docker-compose exec salvagedb-bot python -c "
import oracledb
import os
try:
conn = oracledb.connect(
user=os.getenv('db_user'),
password=os.getenv('db_password'),
dsn=os.getenv('db_dsn')
)
print('✅ Oracle connection successful!')
conn.close()
except Exception as e:
print(f'❌ Oracle error: {e}')
"
Проверка Telegram бота
docker-compose exec salvagedb-bot python -c "
import os
import requests
token = os.getenv('BOT_TOKEN')
if token and token != 'your_bot_token_here':
r = requests.get(f'https://api.telegram.org/bot{token}/getMe')
if r.status_code == 200:
print('✅ Bot token valid!')
else:
print('❌ Invalid bot token')
else:
print('❌ Bot token not configured')
"
Часто встречающиеся проблемы
- "cx_Oracle не найден" → переустановите контейнер
- "Не удается подключиться к БД" → проверьте db_dsn формат
- "Bot token invalid" → получите новый токен от @BotFather
- "Permission denied" → проверьте права на logs/data директории
Безопасность
- ✅ Непривилегированный пользователь в контейнере
- ✅ Изолированная сеть Docker
- ✅ Нет открытых портов
- ✅ Read-only доступ к images
Связанные страницы
- Gitea-Actions - автоматическая сборка образов
- Harbor-Registry - публикация образов
- Development - разработка и отладка