98 lines
2.6 KiB
Bash
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 "$@" |