#!/bin/bash set -e echo "=== BDFR Docker Container Startup Diagnostics ===" echo "Current user: $(id)" echo "Current user name: $(whoami)" echo "" # Check Python package directory permissions echo "Checking Python package directory permissions:" if [ -d "/usr/local/lib/python3.11/site-packages/bdfr" ]; then ls -la /usr/local/lib/python3.11/site-packages/bdfr/ | head -20 echo "" echo "Checking default_config.cfg specifically:" ls -l /usr/local/lib/python3.11/site-packages/bdfr/default_config.cfg || echo "File not found!" echo "Can read default_config.cfg: $(test -r /usr/local/lib/python3.11/site-packages/bdfr/default_config.cfg && echo 'YES' || echo 'NO')" else echo "ERROR: BDFR package directory not found!" fi echo "" # Check temp config echo "Checking temp config:" ls -l /tmp/bdfr_default_config.cfg 2>/dev/null || echo "Temp config not found!" echo "Can read temp config: $(test -r /tmp/bdfr_default_config.cfg && echo 'YES' || echo 'NO')" echo "" # Create BDFR config directory if it doesn't exist # This needs to be done at runtime because /app/data is a volume mount echo "Creating BDFR config directory..." mkdir -p /app/data/bdfr-config chmod 755 /app/data/bdfr-config echo "Checking /app/data permissions:" ls -la /app/data/ 2>/dev/null || echo "Cannot list /app/data" echo "" # Copy default config if it doesn't exist # Use the temp copy created during build to avoid permission issues with importlib.resources if [ ! -f /app/data/bdfr-config/default_config.cfg ]; then echo "Copying default config to /app/data/bdfr-config/..." cp /tmp/bdfr_default_config.cfg /app/data/bdfr-config/default_config.cfg chmod 644 /app/data/bdfr-config/default_config.cfg echo "Config copied successfully" else echo "Config already exists in /app/data/bdfr-config/" fi echo "Final config check:" ls -l /app/data/bdfr-config/default_config.cfg 2>/dev/null || echo "Config not found in data dir!" echo "" echo "=== End of diagnostics ===" echo "" # Execute the main command exec "$@"