savagedb_bot/docker-entrypoint.sh

98 lines
2.6 KiB
Bash

#!/bin/bash
# Скрипт инициализации для Docker контейнера SalvageDB Bot
set -e
echo "====================================================="
echo "SalvageDB Telegram Bot - Docker Container Startup"
echo "====================================================="
# Проверяем обязательные переменные окружения
check_env_var() {
if [ -z "${!1}" ]; then
echo "❌ ERROR: Environment variable $1 is not set!"
echo "Please check your .env file or docker-compose.yml"
exit 1
else
echo "$1 is configured"
fi
}
echo "🔍 Checking required environment variables..."
check_env_var BOT_TOKEN
check_env_var DB_USER
check_env_var DB_PASSWORD
check_env_var DB_DSN
check_env_var ADMIN_USER_ID
echo ""
echo "📋 Configuration Summary:"
echo " • Bot Name: ${BOT_NAME:-'SalvageDB Bot'}"
echo " • Debug Mode: ${DEBUG:-'0'}"
echo " • Timezone: ${TZ:-'UTC'}"
echo " • Decode Price: ${DECODE_PRICE:-'1'}"
echo " • Check Price: ${CHECK_PRICE:-'10'}"
echo " • Image Price: ${IMG_PRICE:-'100'}"
echo " • Database DSN: ${DB_DSN}"
echo " • Admin User ID: ${ADMIN_USER_ID}"
echo ""
echo "📁 Creating directories..."
mkdir -p /home/salvagebot/app/logs
mkdir -p /home/salvagebot/app/images
mkdir -p /home/salvagebot/app/data
echo "✅ Directory structure created"
echo ""
echo "🐍 Testing Python environment..."
python -c "
import sys
print(f'Python version: {sys.version}')
print(f'Python path: {sys.executable}')
"
echo ""
echo "📦 Testing critical imports..."
python -c "
try:
import aiogram
print('✅ aiogram imported successfully')
import oracledb
print('✅ oracledb imported successfully')
import asyncio
print('✅ asyncio imported successfully')
import logging
print('✅ logging imported successfully')
print('🎉 All critical dependencies are available')
except ImportError as e:
print(f'❌ Import error: {e}')
exit(1)
"
echo ""
echo "🔗 Testing Oracle connectivity..."
python -c "
import oracledb
import os
try:
# Тестируем создание пула соединений (без подключения к БД)
print('Testing Oracle client library...')
print(f'Oracle client version: {oracledb.version}')
print('✅ Oracle client is ready')
except Exception as e:
print(f'❌ Oracle client error: {e}')
exit(1)
"
echo ""
echo "🚀 Starting SalvageDB Telegram Bot..."
echo "====================================================="
# Запускаем основное приложение
exec "$@"