38 lines
1.2 KiB
Bash
Executable File
38 lines
1.2 KiB
Bash
Executable File
#!/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 "$@"
|