Misa a jours des container
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Bash(ls /var/home/Gato/IdeaProjects/Infra/)",
|
||||||
|
"Read(//var/home/Gato/IdeaProjects/Infra/**)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
@@ -35,3 +35,4 @@ Internet
|
|||||||
|
|
||||||
- [Installation Production](Installation-Production)
|
- [Installation Production](Installation-Production)
|
||||||
- [Installation Développement](Installation-Developpement)
|
- [Installation Développement](Installation-Developpement)
|
||||||
|
- [Mise à jour des applications](Mise-a-jour-Applications)
|
||||||
|
|||||||
@@ -0,0 +1,91 @@
|
|||||||
|
# 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 <dossier-du-service>/
|
||||||
|
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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user