Ajouter la commande redeploir à serve-webapp.sh

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é.
This commit is contained in:
Antoine Jacquin
2026-09-20 16:58:37 +02:00
parent e0173e0b39
commit aa34063b5e

View File

@ -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