ZimaOS 업그레이드 후 Immich가 중지되고 서버 로그에 getaddrinfo EAI_AGAIN immich-postgres가 표시된다면, 즉각적인 문제는 컨테이너 간 이름 확인입니다. 이는 PostgreSQL 데이터 볼륨 자체가 손상되었다는 증거가 아닙니다.
기존 1.6.1 스레드에서는 저장소 경로 이름이 변경되면서 여러 애플리케이션에 문제가 발생했지만, 경로를 수정한 후 MariaDB, Plex 및 Nextcloud는 복구되었습니다. Immich는 달랐습니다. PostgreSQL은 정상 작동했지만 immich-server가 호스트 이름 immich-postgres를 확인하지 못했습니다.
Immich 오류 메시지를 그대로 해석하기
EAI_AGAIN은 일시적인 DNS 이름 확인 실패입니다. 서버는 immich-postgres라는 데이터베이스 호스트에 연결하려고 했지만, 데이터베이스 컨테이너 자체는 연결을 받을 준비가 되었다고 보고했습니다.
따라서 먼저 확인해야 할 계층은 Docker 네트워킹과 서비스 검색입니다. 데이터베이스를 삭제하거나 사진 라이브러리를 다시 생성하는 것부터 시작하지 마세요.
Immich 서비스가 Compose 네트워크를 공유하는지 확인하기
Docker의 Compose 네트워킹 가이드에 따르면, 동일한 Compose 네트워크에 있는 서비스는 서비스 이름으로 서로 연결할 수 있습니다. 컨테이너를 다시 생성하면 컨테이너 IP 주소가 변경될 수 있지만 서비스 이름은 그대로 유지됩니다.
immich-server, PostgreSQL 및 Redis가 의도한 공유 네트워크에 연결되어 있는지, 그리고 Immich의 데이터베이스 호스트 이름이 여전히 Compose 서비스 이름과 일치하는지 확인하세요. 고정 컨테이너 IP로 호스트 이름을 바꾸는 방법은 영구적인 해결책으로 사용하지 마세요.
볼륨 이름 변경을 별도의 마이그레이션 점검으로 처리하기
이 사용자 환경에서는 업그레이드 과정에서 공백이 밑줄로 바뀌면서 일부 저장소 이름도 변경되었습니다. 다른 앱을 위해 해당 호스트 경로를 수정해야 했으므로, 모든 Immich 바인드 마운트도 검토하세요. 특히 라이브러리, 업로드 및 데이터베이스 경로를 확인해야 합니다.
Immich 저장소 경로 가이드와 앱 데이터 마이그레이션 가이드를 참고하면 저장소 경로 문제와 네트워크 문제를 구분하는 데 도움이 됩니다.
구성을 백업한 후에만 스택을 다시 생성하기
Compose 파일과 경로를 확인한 후 Immich 스택을 다시 생성하면 의도한 Docker 네트워크와 DNS 항목을 재구성할 수 있습니다. 데이터베이스 볼륨과 Immich 라이브러리 경로는 유지하세요. 네트워킹 테스트를 위해 파괴적인 초기화를 사용하지 마세요.
이후 ZimaOS 1.7.1에서는 1.7.1 릴리스 노트에 Docker 네트워크 구성 및 앱 마이그레이션 호환성 개선 사항이 기재되었습니다. 따라서 업데이트할 이유는 있지만, 변경 로그에서 이 특정 Immich EAI_AGAIN 사례가 해결되었다고 명시적으로 주장하지는 않습니다.
결론
PostgreSQL은 정상인데 Immich에서 EAI_AGAIN immich-postgres가 보고된다면, 먼저 서비스 이름 DNS와 공유 Docker 네트워크를 문제 해결하세요. 그런 다음 ZimaOS 업그레이드로 변경된 각 호스트 볼륨 경로를 별도로 확인하세요.
