#!/bin/sh set -eu APP_ROOT="/var/www/html" CONFIG="$APP_ROOT/config.local.ini" # Docker crée un répertoire si le fichier hôte n'existe pas lors du bind mount. # Le supprimer pour que bootstrap.php retombe sur les valeurs par défaut. if [ -d "$CONFIG" ]; then rmdir "$CONFIG" 2>/dev/null || true echo "Warning: config.local.ini monté comme répertoire (fichier absent sur l'hôte). Valeurs par défaut utilisées." fi install -d -m 0775 -o www-data -g www-data \ "$APP_ROOT/db" \ "$APP_ROOT/logs" \ "$APP_ROOT/public/uploads/media" \ "$APP_ROOT/tmp" \ "$APP_ROOT/tmp/uploads" # Les bind mounts peuvent conserver les permissions de l'hôte. # Normaliser les dossiers persistants et le runtime éphémère avant le démarrage. chown -R www-data:www-data \ "$APP_ROOT/db" \ "$APP_ROOT/logs" \ "$APP_ROOT/public/uploads/media" \ "$APP_ROOT/tmp" chmod -R u+rwX,g+rwX \ "$APP_ROOT/db" \ "$APP_ROOT/logs" \ "$APP_ROOT/public/uploads/media" \ "$APP_ROOT/tmp" # Exécuter l'installation en tant que www-data pour conserver des permissions cohérentes. su -s /bin/sh www-data -c "php $APP_ROOT/scripts/install.php" exec "$@"