actes : persistance des messages — diagnostic et dossier préparé
Diagnostic en lecture seule sur sonic (26/10) : le conteneur tourne
dans /app, les montages visent /src/data et /src/public (dossiers
vides de l'hôte), les messages vivent dans la couche du conteneur et
la graine est rejouée à chaque déploiement ; ADMIN_GIT_SYNC=false,
pas de .git, aucun commit [admin]. Rien perdu depuis le 29/09 ;
avant, invérifiable.
Dossier PRÉPARÉ (mot « déploie ») : sauvegarde et volume semé sur
sonic, veille de l'ancien conteneur, push de a6ba0a6
(fix/persistance-messages), vérification et redémarrage à froid.
Scripts déroulés en entier en local avec le vrai docker.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
# Acte 2026-10-26-persistance-messages — étape 2, sur sonic, sous yvv, en arrière-plan.
|
||||
# Relève toutes les 5 s le fichier de messages de l'ancien conteneur, jusqu'à ce
|
||||
# que le déploiement le remplace (ou 30 min au plus). Lectures seulement, sauf
|
||||
# l'écriture de la relève dans le dossier de sauvegarde.
|
||||
# Lancement : ssh yvv@161.97.174.60 'setsid nohup bash /tmp/lb-veille.sh >/tmp/lb-veille.log 2>&1 &' </dev/null
|
||||
set -uo pipefail
|
||||
|
||||
C=lpk-librodrome-main-app-1
|
||||
D="$HOME/librodrome-sauvegardes/2026-10-26"
|
||||
|
||||
[ -s "$D/ancien-conteneur.id" ] || { echo "ARRÊT : étape 1 non jouée"; exit 1; }
|
||||
old=$(cat "$D/ancien-conteneur.id")
|
||||
umask 077
|
||||
i=0
|
||||
while [ "$(docker inspect -f '{{.Id}}' "$C" 2>/dev/null)" = "$old" ] && [ "$i" -lt 360 ]; do
|
||||
# par l'identifiant : après la bascule, le nom désigne déjà le nouveau conteneur
|
||||
if docker exec "$old" cat /app/data/messages.yml > "$D/.releve.tmp" 2>/dev/null && [ -s "$D/.releve.tmp" ]; then
|
||||
mv "$D/.releve.tmp" "$D/messages-derniere-releve.yml"
|
||||
date -u +%FT%TZ > "$D/derniere-releve.date"
|
||||
fi
|
||||
i=$((i + 1))
|
||||
sleep 5
|
||||
done
|
||||
rm -f "$D/.releve.tmp"
|
||||
if [ "$i" -ge 360 ]; then
|
||||
echo "FIN SANS BASCULE : 30 min écoulées, l'ancien conteneur tourne toujours"
|
||||
else
|
||||
date -u +%FT%TZ > "$D/veille.fin"
|
||||
echo "ancien conteneur remplacé, constaté à $(cat "$D/veille.fin")"
|
||||
fi
|
||||
rm -f -- "$0"
|
||||
Reference in New Issue
Block a user