Rozwiązanie społecznościowe

Immich EAI_AGAIN po aktualizacji ZimaOS: naprawa DNS Dockera

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.

Jeśli Immich przestaje działać po aktualizacji ZimaOS, a dziennik serwera zawiera komunikat getaddrinfo EAI_AGAIN immich-postgres, bezpośrednią przyczyną jest rozwiązywanie nazw między kontenerami. Nie oznacza to, że wolumin z danymi PostgreSQL jest uszkodzony.

W pierwotnym wątku dotyczącym wersji 1.6.1 zmienione ścieżki magazynu spowodowały awarie kilku aplikacji, ale MariaDB, Plex i Nextcloud zaczęły ponownie działać po poprawieniu ich ścieżek. Immich zachowywał się inaczej: PostgreSQL działał prawidłowo, natomiast immich-server nie mógł rozpoznać nazwy hosta immich-postgres.

Odczytaj błąd Immich dosłownie

EAI_AGAIN oznacza tymczasowy błąd rozwiązywania nazw DNS. Serwer próbował połączyć się z bazą danych na hoście o nazwie immich-postgres, podczas gdy sam kontener bazy danych zgłaszał gotowość do przyjmowania połączeń.

Dlatego w pierwszej kolejności należy sprawdzić sieć Dockera i wykrywanie usług. Nie zaczynaj od usuwania bazy danych ani ponownego tworzenia biblioteki zdjęć.

Sprawdź, czy usługi Immich korzystają ze wspólnej sieci Compose

Przewodnik po sieciach Compose firmy Docker wyjaśnia, że usługi w tej samej sieci Compose mogą łączyć się ze sobą za pomocą nazwy usługi. Adresy IP kontenerów mogą zmieniać się po ich odtworzeniu, natomiast nazwa usługi pozostaje stała.

Sprawdź, czy immich-server, PostgreSQL i Redis są podłączone do właściwej wspólnej sieci oraz czy nazwa hosta bazy danych w Immich nadal odpowiada nazwie usługi Compose. Nie zastępuj nazwy hosta stałym adresem IP kontenera jako trwałym rozwiązaniem.

Potraktuj zmianę nazwy woluminu jako osobną kontrolę migracji

Aktualizacja zmieniła również niektóre nazwy magazynów, zastępując spacje znakami podkreślenia w środowisku tego użytkownika. Poprawienie tych ścieżek hosta było konieczne w przypadku innych aplikacji, dlatego sprawdź także każde dowiązanie montowania Immich, zwłaszcza ścieżki biblioteki, przesyłania i bazy danych.

Przewodnik konfiguracji magazynu Immich oraz przewodnik migracji danych aplikacji pomogą oddzielić problemy ze ścieżkami magazynu od problemów z siecią.

Odtwórz stos dopiero po utworzeniu kopii zapasowej konfiguracji

Po potwierdzeniu poprawności pliku Compose i ścieżek odtworzenie stosu Immich może zbudować właściwą sieć Dockera i wpisy DNS. Zachowaj wolumin bazy danych oraz ścieżki biblioteki Immich; nie używaj destrukcyjnego resetowania jako testu sieci.

W późniejszej wersji ZimaOS 1.7.1 wymieniono usprawnienia konfiguracji sieci Dockera i zgodności migracji aplikacji w informacjach o wydaniu wersji 1.7.1. To powód, aby wykonać aktualizację, ale dziennik zmian nie stwierdza konkretnie, że naprawiono dokładnie ten przypadek EAI_AGAIN w Immich.

Podsumowanie

Gdy PostgreSQL działa prawidłowo, ale Immich zgłasza EAI_AGAIN immich-postgres, najpierw sprawdź DNS nazw usług i wspólne sieci Dockera. Następnie osobno zweryfikuj każdą zmienioną ścieżkę woluminu hosta wprowadzoną podczas aktualizacji ZimaOS.