#!/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 "$@"