Files
f3-simple-blog/docker/entrypoint.sh
2026-03-30 15:05:13 +02:00

38 lines
1.1 KiB
Bash

#!/bin/sh
set -eu
APP_ROOT="/var/www/html"
CONFIG="$APP_ROOT/config.local.ini"
# Si le bind mount cible un fichier absent, Docker crée un répertoire.
# Le supprimer pour laisser bootstrap.php utiliser 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 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 garder des permissions cohérentes.
su -s /bin/sh www-data -c "php $APP_ROOT/scripts/install.php"
exec "$@"