Files
simpleguardhome/docker-entrypoint.sh

93 lines
2.3 KiB
Bash

#!/bin/bash
set -e
# Function to handle termination signals
handle_term() {
echo "Received SIGTERM/SIGINT, shutting down gracefully..."
kill -TERM "$child"
wait "$child"
exit 0
}
# Set up signal handlers
trap handle_term SIGTERM SIGINT
# Function to log with timestamp
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
# Function to check package installation
check_package() {
log "System information:"
uname -a
log "Python version:"
python3 --version
# Debug: Show current directory and its contents
log "Current directory: $(pwd)"
log "Directory contents:"
ls -la
# Debug: Show /app directory contents
log "Contents of /app directory:"
ls -la /app
# Debug: Show /app/src directory contents
log "Contents of /app/src directory:"
ls -la /app/src || echo "src directory not found"
log "Verifying package files..."
if [ ! -d "/app/src/simpleguardhome" ]; then
log "ERROR: Package directory not found!"
log "Contents of parent directories:"
ls -la /
ls -la /app || echo "/app not found"
log "Full path check:"
find / -name "simpleguardhome" 2>/dev/null || echo "No simpleguardhome directory found"
exit 1
fi
log "Checking critical files..."
for file in "__init__.py" "main.py" "adguard.py" "config.py"; do
if [ ! -f "/app/src/simpleguardhome/$file" ]; then
log "ERROR: Required file $file not found!"
exit 1
fi
done
log "Environment variables:"
echo "PYTHONPATH=$PYTHONPATH"
echo "PWD=$(pwd)"
log "Package contents:"
find /app/src/simpleguardhome -type f
log "Testing package import..."
PYTHONPATH=/app/src python3 -c "
import sys
import simpleguardhome
from simpleguardhome.main import app
print('Python path:', sys.path)
print('Package location:', simpleguardhome.__file__)
print('Package imported successfully')
" || {
log "ERROR: Package import failed!"
exit 1
}
}
# Run checks
check_package
log "All checks passed. Starting server..."
# Start the application
echo "Starting SimpleGuardHome server..."
exec python3 -c "from simpleguardhome import start; start()"
# Store child PID
child=$!
# Wait for process to complete
wait "$child"