Solution communautaire

Immich EAI_AGAIN après la mise à niveau de ZimaOS : corriger le DNS de Docker

After upgrading to ZimaOS 1.6.1, a user corrected renamed host volumes but Immich still failed with EAI_AGAIN while trying to resolve the immich-postgres service hostname.

Si Immich s’arrête après une mise à niveau de ZimaOS et que le journal du serveur indique getaddrinfo EAI_AGAIN immich-postgres, le problème immédiat est la résolution des noms entre les conteneurs. Cela ne signifie pas que le volume de données PostgreSQL est corrompu.

Dans le fil d’origine consacré à la version 1.6.1, le renommage des chemins de stockage avait interrompu plusieurs applications, mais MariaDB, Plex et Nextcloud ont refonctionné après la correction de leurs chemins. Immich était différent : PostgreSQL fonctionnait correctement, tandis que immich-server ne parvenait pas à résoudre le nom d’hôte immich-postgres.

Interprétez littéralement l’erreur d’Immich

EAI_AGAIN indique un échec temporaire de résolution DNS. Le serveur tentait de joindre un hôte de base de données nommé immich-postgres, tandis que le conteneur de base de données indiquait lui-même qu’il était prêt à accepter des connexions.

Le réseau Docker et la découverte des services sont donc les premières couches à vérifier. Ne commencez pas par supprimer la base de données ou recréer la photothèque.

Vérifiez qu’Immich partage un réseau Compose

Le guide de mise en réseau de Compose de Docker explique que les services connectés au même réseau Compose peuvent communiquer entre eux via leur nom de service. Les adresses IP des conteneurs peuvent changer après leur recréation, tandis que le nom du service reste stable.

Vérifiez que immich-server, PostgreSQL et Redis sont connectés au réseau partagé prévu et que le nom d’hôte de la base de données dans Immich correspond toujours au nom du service Compose. Évitez de remplacer définitivement ce nom d’hôte par l’adresse IP fixe d’un conteneur.

Traitez le renommage du volume comme une migration distincte

La mise à niveau a également modifié certains noms de stockage en remplaçant les espaces par des traits de soulignement dans l’environnement de cet utilisateur. La correction de ces chemins hôtes était nécessaire pour les autres applications ; vérifiez donc aussi chaque montage de volume Immich, en particulier les chemins de la photothèque, des importations et de la base de données.

Le guide des chemins de stockage Immich et le guide de migration des données d’application peuvent aider à distinguer les problèmes de chemin de stockage des problèmes réseau.

Recréez la pile uniquement après avoir sauvegardé la configuration

Après avoir confirmé le fichier Compose et les chemins, la recréation de la pile Immich peut reconstruire le réseau Docker prévu et les entrées DNS. Conservez le volume de la base de données ainsi que les chemins de la photothèque Immich ; n’effectuez pas de réinitialisation destructive pour tester le réseau.

ZimaOS 1.7.1 a ensuite mentionné des améliorations de la configuration réseau Docker et de la compatibilité des migrations d’applications dans ses notes de version 1.7.1. C’est une raison d’effectuer la mise à jour, mais le journal des modifications n’affirme pas précisément que ce cas EAI_AGAIN d’Immich a été corrigé.

En résumé

Lorsque PostgreSQL fonctionne correctement, mais qu’Immich signale EAI_AGAIN immich-postgres, commencez par rechercher un problème de DNS lié au nom du service et de réseau Docker partagé. Vérifiez ensuite séparément chaque chemin de volume hôte renommé lors de la mise à niveau de ZimaOS.