Solução da comunidade

Corrigir o DNS do Docker após a atualização do ZimaOS: EAI_AGAIN no Immich

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.

Se o Immich parar após uma atualização do ZimaOS e o registo do servidor indicar getaddrinfo EAI_AGAIN immich-postgres, a falha imediata está na resolução de nomes entre contentores. Isto não é prova de que o volume de dados do PostgreSQL esteja corrompido.

No tópico original sobre a versão 1.6.1, a alteração dos caminhos de armazenamento afetou várias aplicações, mas o MariaDB, o Plex e o Nextcloud recuperaram depois de os respetivos caminhos serem corrigidos. O Immich era diferente: o PostgreSQL estava saudável, enquanto o immich-server não conseguia resolver o nome de anfitrião immich-postgres.

Leia literalmente o erro do Immich

EAI_AGAIN é uma falha temporária de resolução DNS. O servidor estava a tentar contactar um anfitrião de base de dados chamado immich-postgres, enquanto o próprio contentor da base de dados indicava que estava pronto para aceitar ligações.

Por isso, a rede do Docker e a deteção de serviços são a primeira camada a verificar. Não comece por eliminar a base de dados nem por recriar a biblioteca de fotografias.

Verifique se os serviços do Immich partilham uma rede do Compose

O guia de redes do Compose do Docker explica que os serviços na mesma rede do Compose podem comunicar entre si através do nome do serviço. Os endereços IP dos contentores podem mudar após a recriação, enquanto o nome do serviço permanece estável.

Verifique se o immich-server, o PostgreSQL e o Redis estão ligados à rede partilhada pretendida e se o nome de anfitrião da base de dados no Immich continua a corresponder ao nome do serviço no Compose. Evite substituir o nome de anfitrião pelo IP fixo de um contentor como solução permanente.

Trate a alteração do nome do volume como uma verificação de migração separada

A atualização também alterou alguns nomes de armazenamento, substituindo espaços por sublinhados no ambiente deste utilizador. Corrigir esses caminhos no anfitrião foi necessário para outras aplicações, por isso reveja também todos os mounts de ligação do Immich, especialmente os caminhos da biblioteca, dos carregamentos e da base de dados.

O guia sobre o caminho de armazenamento do Immich e o guia de migração dos dados das aplicações podem ajudar a separar os problemas dos caminhos de armazenamento dos problemas de rede.

Recrie a stack apenas depois de fazer uma cópia de segurança da configuração

Depois de confirmar o ficheiro Compose e os caminhos, recriar a stack do Immich pode reconstruir a rede Docker pretendida e as entradas DNS. Preserve o volume da base de dados e os caminhos da biblioteca do Immich; não utilize uma reposição destrutiva como teste de rede.

Mais tarde, o ZimaOS 1.7.1 indicou melhorias na configuração da rede Docker e na compatibilidade da migração de aplicações nas suas notas de lançamento da versão 1.7.1. É uma razão para atualizar, mas o registo de alterações não afirma especificamente que este caso exato de EAI_AGAIN do Immich tenha sido corrigido.

Em resumo

Quando o PostgreSQL está saudável, mas o Immich apresenta EAI_AGAIN immich-postgres, comece por diagnosticar o DNS do nome do serviço e as redes Docker partilhadas. Em seguida, verifique separadamente todos os caminhos de volumes no anfitrião que foram alterados pela atualização do ZimaOS.