# Mise à jour des applications Chaque application est packagée sous forme d'image Docker publiée sur le registre Gitea (`git.goutailler-olivier.com`) par la CI lors d'une release. La mise à jour en production consiste à récupérer la nouvelle image et à recréer le conteneur. --- ## Principe général ```bash cd / docker compose pull # télécharge la nouvelle image docker compose up -d # recrée le conteneur si l'image a changé ``` `docker compose up -d` détecte automatiquement que l'image locale est différente de celle utilisée par le conteneur en cours et le recrée. Le temps d'indisponibilité est limité à la durée du redémarrage du conteneur (quelques secondes). --- ## Exemple : mettre à jour Bonsai Webapp Une nouvelle release a été publiée sur Gitea et l'image `bonsai-webapp:latest` a été mise à jour par la CI. ```bash cd bonsai-webapp/ docker compose pull docker compose up -d ``` Vérifier que le conteneur tourne bien avec la nouvelle image : ```bash docker inspect bonsai-webapp --format '{{.Image}}' # ou docker compose ps ``` --- ## Mettre à jour une version précise (tag de release) Par défaut les `docker-compose.yml` pointent sur `:latest`. Pour épingler une version spécifique, éditer le fichier et remplacer le tag : ```yaml image: git.goutailler-olivier.com/bonsai/bonsai-webapp:v1.2.3 ``` Puis appliquer : ```bash docker compose pull docker compose up -d ``` --- ## Revenir à une version précédente (rollback) 1. Identifier le tag voulu dans le registre Gitea : **Packages → bonsai-webapp** 2. Modifier le tag dans `docker-compose.yml` (ex. `v1.1.0`) 3. Appliquer : ```bash docker compose pull docker compose up -d ``` --- ## Mettre à jour tous les services d'un coup ```bash for dir in traefik keycloak gitea bonsai-api bonsai-webapp nextcloud trilium; do echo "=== $dir ===" (cd "$dir" && docker compose pull && docker compose up -d) done ``` --- ## Vérifications après mise à jour ```bash # État de tous les conteneurs docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Image}}" # Logs du service mis à jour docker logs bonsai-webapp --tail 50 -f # Supprimer les anciennes images devenues inutiles docker image prune -f ```