fix: entrypoint sans redirection fichier (var/log inexistant au démarrage)
This commit is contained in:
@@ -1,36 +1,29 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Warmup du cache Symfony au démarrage (les vars d'env sont disponibles ici)
|
# Warmup du cache Symfony au démarrage
|
||||||
php bin/console cache:warmup --env=prod --no-debug 2>&1 || true
|
php bin/console cache:warmup --env=prod --no-debug 2>&1 || true
|
||||||
|
|
||||||
# Génère les tiles au démarrage depuis les données existantes en DB.
|
# Génère les tiles depuis les données existantes (protection contre redémarrage sans tiles)
|
||||||
# Indispensable si le container redémarre sans que les tiles aient été régénérées
|
php bin/console app:generate-tiles --env=prod --no-debug 2>&1 || true
|
||||||
# par le pipeline d'ingestion (premier démarrage, redémarrage inattendu, etc.).
|
|
||||||
php bin/console app:generate-tiles --env=prod --no-debug 2>&1 | tee -a var/log/tiles.log || true
|
|
||||||
|
|
||||||
# Boucle de supervision : relance le worker automatiquement après --time-limit ou crash.
|
# Boucle de supervision : relance le worker automatiquement après --time-limit ou crash.
|
||||||
# Sans cette boucle, les workers s'arrêtent définitivement après 3600s (--time-limit)
|
|
||||||
# et plus aucune ingestion ni traitement de message n'a lieu.
|
|
||||||
_supervise() {
|
_supervise() {
|
||||||
name="$1"; shift
|
name="$1"; shift
|
||||||
while true; do
|
while true; do
|
||||||
printf '[%s] Starting worker: %s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$name" >> "var/log/${name}.log"
|
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) [worker:${name}] starting"
|
||||||
"$@" >> "var/log/${name}.log" 2>&1 || true
|
"$@" 2>&1 || true
|
||||||
printf '[%s] Worker %s stopped — restart in 5s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$name" >> "var/log/${name}.log"
|
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) [worker:${name}] stopped — restart in 5s"
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Worker scheduler — réveille le pipeline toutes les 6h
|
|
||||||
_supervise scheduler \
|
_supervise scheduler \
|
||||||
php bin/console messenger:consume scheduler_main \
|
php bin/console messenger:consume scheduler_main \
|
||||||
--env=prod --no-debug --memory-limit=64M --time-limit=3600 &
|
--env=prod --no-debug --memory-limit=64M --time-limit=3600 &
|
||||||
|
|
||||||
# Worker async — exécute les messages d'ingestion déclenchés par le scheduler
|
|
||||||
_supervise async \
|
_supervise async \
|
||||||
php bin/console messenger:consume async \
|
php bin/console messenger:consume async \
|
||||||
--env=prod --no-debug --memory-limit=256M --time-limit=3600 &
|
--env=prod --no-debug --memory-limit=256M --time-limit=3600 &
|
||||||
|
|
||||||
# Lance FrankenPHP (comportement par défaut de l'image de base)
|
|
||||||
exec frankenphp run --config /etc/caddy/Caddyfile "$@"
|
exec frankenphp run --config /etc/caddy/Caddyfile "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user