savagedb_bot/wiki/Docker-Setup.md

4.9 KiB
Raw Permalink Blame History

Полная инструкция по развертыванию 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')
"

Часто встречающиеся проблемы

  1. "cx_Oracle не найден" → переустановите контейнер
  2. "Не удается подключиться к БД" → проверьте db_dsn формат
  3. "Bot token invalid" → получите новый токен от @BotFather
  4. "Permission denied" → проверьте права на logs/data директории

Безопасность

  • Непривилегированный пользователь в контейнере
  • Изолированная сеть Docker
  • Нет открытых портов
  • Read-only доступ к images

Связанные страницы