Comment Mettre à Jour GLPI dans Docker Entre les Versions

Guide étape par étape pour mettre à jour GLPI dans Docker d'une version mineure ou majeure vers une autre, avec sauvegarde, test et rollback.

Mettre à jour GLPI dans Docker est plus sûr et plus rapide que sur bare metal – il suffit de changer le tag de l'image et d'exécuter la migration. Mais une sauvegarde préalable est non négociable.

Prérequis

  • Sauvegarde complète de la base de données et des volumes (voir guide de sauvegarde)
  • Vérifier la compatibilité des plugins avec la nouvelle version
  • Tester d'abord dans un environnement de pré-production

Étape par étape

1. Sauvegarde

docker exec glpi-db mysqldump -u glpi -pSENHA glpi | gzip > /backup/pre-update.sql.gz
tar -czf /backup/pre-update-volumes.tar.gz /opt/glpi/

2. Arrêter les conteneurs

docker compose down

3. Mettre à jour l'image

Dans docker-compose.yml, modifiez le tag :

# De :
image: glpi/glpi:10.0.17
# À :
image: glpi/glpi:11.0

4. Démarrer avec la nouvelle version

docker compose up -d

5. Exécuter la migration de la base de données

docker exec -it glpi-app php bin/console db:update --no-interaction

6. Vider le cache

docker exec -it glpi-app php bin/console cache:clear

7. Vérifier

Accédez à GLPI, vérifiez la version dans Configuration > Général et testez les fonctionnalités principales.

Rollback

Si quelque chose se passe mal :

docker compose down
# Restaurer la base de données
gunzip < /backup/pre-update.sql.gz | docker exec -i glpi-db mysql -u root -pSENHA glpi
# Revenir à l'image précédente dans docker-compose.yml
docker compose up -d

Questions fréquentes

Modifiez le tag de l'image dans docker-compose.yml, faites une sauvegarde, recréez le conteneur et exécutez db:update via la console. La base de données est migrée automatiquement.

Oui, brièvement. Arrêtez les conteneurs, faites une sauvegarde, démarrez avec la nouvelle image et exécutez la migration de la base de données. La durée d'indisponibilité typique est de 5 à 15 minutes.

Restaurez la sauvegarde de la base de données et revenez à l'image précédente dans docker-compose.yml. C'est pour cela que la sauvegarde préalable est obligatoire.

Besoin d'aide ?