48 lines
1.6 KiB
Bash
48 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# Container Startup Logger
|
|
# Logs container lifecycle events for debugging restarts
|
|
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo "[CONTAINER-STARTUP] $(date '+%Y-%m-%d %H:%M:%S')"
|
|
echo "Container: igny8_backend"
|
|
echo "Hostname: $(hostname)"
|
|
echo "PID: $$"
|
|
echo "=========================================="
|
|
|
|
# Log environment info
|
|
echo "[INFO] Python version: $(python --version 2>&1)"
|
|
echo "[INFO] Django settings: ${DJANGO_SETTINGS_MODULE:-igny8_core.settings}"
|
|
echo "[INFO] Debug mode: ${DEBUG:-False}"
|
|
echo "[INFO] Database host: ${DB_HOST:-not set}"
|
|
|
|
# Check if this is a restart (look for previous process artifacts)
|
|
if [ -f /tmp/container_pid ]; then
|
|
PREV_PID=$(cat /tmp/container_pid)
|
|
echo "[WARNING] Previous container PID found: $PREV_PID"
|
|
echo "[WARNING] This appears to be a RESTART event"
|
|
echo "[WARNING] Check Docker logs for SIGTERM/SIGKILL signals"
|
|
else
|
|
echo "[INFO] First startup (no previous PID file found)"
|
|
fi
|
|
|
|
# Save current PID
|
|
echo $$ > /tmp/container_pid
|
|
|
|
# Run database migrations (will skip if up to date)
|
|
echo "[INFO] Running database migrations..."
|
|
python manage.py migrate --noinput || echo "[WARNING] Migration failed or skipped"
|
|
|
|
# Collect static files (skip if already done)
|
|
echo "[INFO] Collecting static files..."
|
|
python manage.py collectstatic --noinput || echo "[WARNING] Collectstatic failed or skipped"
|
|
|
|
echo "=========================================="
|
|
echo "[CONTAINER-STARTUP] Initialization complete"
|
|
echo "[CONTAINER-STARTUP] Starting Gunicorn..."
|
|
echo "=========================================="
|
|
|
|
# Execute the CMD passed to the script (Gunicorn command)
|
|
exec "$@"
|