From aa34063b5e19850402fba85b206479f6e5b852b4 Mon Sep 17 00:00:00 2001 From: Antoine Jacquin Date: Sun, 20 Sep 2026 16:58:37 +0200 Subject: [PATCH] =?UTF-8?q?Ajouter=20la=20commande=20redeploir=20=C3=A0=20?= =?UTF-8?q?serve-webapp.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Récupère les derniers commits (git pull), reconstruit l'image légère et recrée le conteneur en une seule commande — cycle de mise à jour complet du Pi après un push vers origin. Le cache de tuiles est conservé. --- serve-webapp.sh | 54 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/serve-webapp.sh b/serve-webapp.sh index 4fa1bef..14095a1 100755 --- a/serve-webapp.sh +++ b/serve-webapp.sh @@ -19,12 +19,13 @@ # make-tls-cert.sh) — ce script ne gère plus le certificat auto-signé. # # Usage : -# ./serve-webapp.sh [start] démarrer (build + arrière-plan, redémarrage auto) -# ./serve-webapp.sh stop arrêter et supprimer la stack (cache conservé) -# ./serve-webapp.sh restart reconstruire l'image et recréer le conteneur -# ./serve-webapp.sh status état du conteneur et de la dernière sync -# ./serve-webapp.sh sync forcer un rebuild + régénération des vignettes -# ./serve-webapp.sh logs suivre les logs du conteneur +# ./serve-webapp.sh [start] démarrer (build + arrière-plan, redémarrage auto) +# ./serve-webapp.sh stop arrêter et supprimer la stack (cache conservé) +# ./serve-webapp.sh restart reconstruire l'image et recréer le conteneur +# ./serve-webapp.sh redeploir git pull + rebuild de l'image + redémarrage du conteneur +# ./serve-webapp.sh status état du conteneur et de la dernière sync +# ./serve-webapp.sh sync forcer un rebuild + régénération des vignettes +# ./serve-webapp.sh logs suivre les logs du conteneur set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" @@ -112,6 +113,32 @@ cmd_restart() { echo "Stack webapp recréée (image reconstruite, relit webapp.env)." } +# Mise à jour complète du checkout git + rebuild de l'image + redémarrage du +# conteneur. À lancer sur le Pi après un push vers origin : récupère les +# derniers commits, reconstruit l'image légère et recrée le conteneur. Le +# cache de tuiles (output/) est conservé — les vignettes déjà présentes ne +# sont pas régénérées (voir sync pour forcer un rebuild des vignettes). +cmd_redeploy() { + if [ ! -d "${SCRIPT_DIR}/.git" ]; then + echo "Échec : ${SCRIPT_DIR} n'est pas un dépôt git — impossible de faire git pull." >&2 + exit 1 + fi + echo "============================================" + echo " Redéploiement webapp (${CONTAINER})" + echo "============================================" + echo " Checkout git : ${SCRIPT_DIR}" + echo " Récupération des derniers commits (git pull)..." + git -C "${SCRIPT_DIR}" pull --ff-only + echo " Image reconstruite, conteneur recréé..." + compose up -d --build --force-recreate + wait_up "$(published_port)" + local port + port="$(published_port)" + echo "============================================" + echo " Webapp redéployée — http://127.0.0.1:${port}/" + echo "============================================" +} + cmd_status() { compose ps local port @@ -139,14 +166,15 @@ cmd_sync() { CMD="${1:-start}" case "$CMD" in - start) cmd_start ;; - stop) cmd_stop ;; - restart) cmd_restart ;; - status) cmd_status ;; - sync) cmd_sync ;; - logs) compose logs -f webapp ;; + start) cmd_start ;; + stop) cmd_stop ;; + restart) cmd_restart ;; + redeploir) cmd_redeploy ;; + status) cmd_status ;; + sync) cmd_sync ;; + logs) compose logs -f webapp ;; *) - echo "Usage : $0 [start|stop|restart|status|sync|logs]" >&2 + echo "Usage : $0 [start|stop|restart|redeploir|status|sync|logs]" >&2 exit 1 ;; esac