SIDEL_ScriptsManager/docker-entrypoint.sh

71 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
set -e
echo "=== SIDEL ScriptsManager Docker Entrypoint ==="
echo "Working directory: $(pwd)"
echo "User: $(whoami)"
echo "Database URL: ${DATABASE_URL:-'Not set'}"
# Activar conda environment
source /opt/conda/etc/profile.d/conda.sh
conda activate scriptsmanager
cd /app
echo "Available conda environments:"
conda env list
echo "Checking directory structure..."
if [ ! -d "app/backend/script_groups" ]; then
echo "ERROR: app/backend/script_groups directory not found!"
exit 1
fi
# Verificar que los directorios necesarios existen
echo "Checking data directories..."
ls -la data/ instance/ logs/ || echo "Creating missing directories..."
# Database setup based on DATABASE_URL
if [[ "${DATABASE_URL}" == postgresql* ]]; then
echo "=== PostgreSQL Database Setup ==="
# Extract database connection info
DB_HOST=$(echo $DATABASE_URL | sed -n 's/.*@\([^:]*\).*/\1/p')
DB_PORT=$(echo $DATABASE_URL | sed -n 's/.*:\([0-9]*\)\/.*/\1/p')
DB_NAME=$(echo $DATABASE_URL | sed -n 's/.*\/\([^?]*\).*/\1/p')
echo "Database Host: ${DB_HOST}"
echo "Database Port: ${DB_PORT}"
echo "Database Name: ${DB_NAME}"
# Wait for PostgreSQL to be ready
echo "Waiting for PostgreSQL to be ready..."
# Simple wait to ensure PostgreSQL has time to start
sleep 10
echo "PostgreSQL should be ready - proceeding..."
else
echo "=== SQLite Database Setup ==="
# Asegurar que la base de datos SQLite puede ser creada
echo "Setting up SQLite database permissions..."
touch data/scriptsmanager.db || echo "Database file already exists or created"
chmod 664 data/scriptsmanager.db || true
fi
# Inicializar base de datos
echo "Initializing database schema..."
python scripts/init_db.py
# Verificar entornos conda
echo "ScriptsManager environment packages:"
conda list -n scriptsmanager | grep -E "(flask|sqlalchemy|psycopg2)" || true
echo "TSNet environment packages:"
conda list -n tsnet | grep -E "(tsnet|numpy|matplotlib)" || true
# Database health check
echo "Performing database health check..."
echo "Skipping health check for now - starting application"
echo "=== SIDEL ScriptsManager Ready ==="
exec "$@"