Solução da comunidade

O Nextcloud não consegue resolver a MariaDB no ZimaOS: diagnóstico e solução alternativa do DNS do Docker

A January 2026 troubleshooting thread where MariaDB was healthy but Nextcloud repeatedly failed with getaddrinfo for mariadb. Testing the MariaDB container IP let Nextcloud install, confirming a container-name resolution problem rather than a database password or local-access rule issue.

Este tópico de janeiro de 2026 sobre Nextcloud/MariaDB é um dos exemplos mais claros de por que motivo a rede dos contentores deve ser diagnosticada camada a camada. O utilizador instalou aplicações separadas do Nextcloud e do MariaDB; o MariaDB atingiu um estado saudável de “pronto para aceitar ligações”, mas o Nextcloud falhou durante a configuração inicial com getaddrinfo for mariadb failedA reinstalação de ambas as aplicações e a eliminação das respetivas pastas não alterou o erro.

A descoberta decisiva ocorreu quando a comunidade testou o IP Docker real do contentor MariaDB. O Nextcloud começou imediatamente a instalação. Isso provou que o servidor da base de dados, as credenciais e o caminho TCP eram, em princípio, funcionais, enquanto o nome de anfitrião mariadb não estava a ser resolvido a partir do contentor do Nextcloud.

O utilizador queria uma base de dados MariaDB separada para o Nextcloud

As primeiras respostas discutiram alternativas, como uma imagem do Nextcloud tudo-em-um com o PostgreSQL incluído ou a criação manual de uma base de dados e de um utilizador MariaDB através do phpMyAdmin. Essas sugestões não correspondiam ao problema final. O utilizador já tinha o MariaDB a funcionar e precisava que o Nextcloud conseguisse aceder-lhe.

Os registos do MariaDB mostraram que a base de dados estava saudável

Registo do contentor MariaDB no ZimaOS a atingir o estado de pronto para aceitar ligações e a escutar na porta 3306
O registo da base de dados atingiu um estado normal de pronto para aceitar ligações, tornando cada vez menos provável que a explicação fosse um servidor MariaDB danificado.

A comunidade recomendou corretamente não alterar repetidamente as palavras-passe do MariaDB e as variáveis de ambiente depois de a base de dados já ter sido inicializada. Muitas imagens de bases de dados aplicam as variáveis de inicialização apenas na primeira criação do diretório de dados.

O anfitrião da base de dados tem de estar acessível a partir do interior do Nextcloud

Durante a configuração inicial do Nextcloud, o campo do anfitrião da base de dados pode conter um nome de anfitrião e uma porta, como:

mariadb:3306

Isto só funciona quando a rede do Docker fornece resolução de nomes para mariadb a partir do contentor do Nextcloud.

getaddrinfo for mariadb failed — é um erro de contentor relacionado com DNS?

O erro principal foi:

php_network_getaddresses: getaddrinfo for mariadb failed

Isto acontece antes de o MariaDB poder aceitar ou rejeitar um nome de utilizador e uma palavra-passe. Se o nome não puder ser resolvido para um endereço IP, as credenciais da base de dados ainda não estão a ser avaliadas.

O facto de ambas as aplicações indicarem “Bridge” não resolveu a resolução de nomes

O utilizador confirmou que ambas as aplicações apresentavam a rede Bridge no ZimaOS, mas mariadb continuava sem ser resolvido. Esta é uma nuance importante do Docker: os contentores ligados de forma independente à bridge predefinida do Docker não obtêm automaticamente o mesmo comportamento de DNS baseado no nome do serviço que os serviços ligados a uma rede bridge definida pelo utilizador.

Por isso, “ambos indicam bridge” não é prova suficiente de que um contentor consegue resolver o nome do outro contentor.

Uma reinstalação limpa não corrigiu o comportamento da rede

O utilizador desinstalou o Nextcloud e o MariaDB, eliminou as respetivas pastas e voltou a instalá-los de raiz. O mesmo erro de nome de anfitrião voltou a ocorrer. Este teste negativo é útil porque mostra que o problema não era simplesmente constituído por dados antigos do MariaDB ou por uma palavra-passe incorreta ocasional.

Um aviso de acesso local do Nextcloud era um problema separado

registo do Nextcloud no ZimaOS que indicava que um anfitrião local não estava ligado por violar as regras de acesso local
O tópico de origem também mostrou um aviso de regra de acesso local do Nextcloud, mas este ocorreu numa camada diferente daquela do nome de anfitrião MariaDB não resolvido.

O utilizador encontrou uma sugestão online para ativar allow_local_remote_servers. Aplicar essa definição durante a configuração inicial fez com que o Nextcloud deixasse de iniciar corretamente. A comunidade explicou que esta opção tratava de uma regra de segurança diferente do Nextcloud e não corrigia a resolução de nomes Docker.

A comunidade passou então para testes diretos da rede Docker

O autor da resposta solicitou verificações sobre:

  • se ambos os contentores estavam em execução;
  • o modo de rede efetivamente indicado pelo Docker;
  • se o Nextcloud conseguia resolver ou fazer ping a mariadb;
  • o IP Docker atual do contentor MariaDB.

Esta é a escalada correta quando as capturas de ecrã da configuração deixam de explicar o comportamento: testar a ligação a partir do mesmo espaço de nomes de rede onde o Nextcloud está a ser executado.

Usar o IP do contentor MariaDB permitiu instalar o Nextcloud

O teste decisivo consistiu em substituir mariadb:3306 temporariamente com o IP e a porta Docker do contentor MariaDB. O utilizador de origem respondeu que, nesse caso, o Nextcloud foi instalado.

O autor da resposta resumiu claramente o resultado:

  • mariadb:3306 falhou;
  • o IP Docker direto na porta 3306 funcionou imediatamente.

Isso é uma forte indicação de um problema na resolução do nome do contentor.

Um IP direto do contentor é uma solução alternativa de diagnóstico válida

Usar o IP prova que é possível aceder à base de dados e permite prosseguir com a instalação. No caso de origem, foi uma solução alternativa eficaz.

No entanto, os endereços IP atribuídos automaticamente aos contentores podem mudar quando um contentor é recriado, removido ou ligado a uma rede diferente. Uma configuração que dependa permanentemente de 172.17.x.x pode falhar mais tarde sem qualquer alteração na configuração do Nextcloud ou do MariaDB.

Uma rede Docker definida pelo utilizador é um design melhor a longo prazo

A arquitetura mais robusta consiste em ligar o Nextcloud e a MariaDB à mesma rede Docker definida pelo utilizador e utilizar um nome estável de serviço ou de contentor como anfitrião da base de dados. O Docker disponibiliza DNS incorporado nas redes definidas pelo utilizador especificamente para este fim.

A edição nativa de YAML do ZimaOS permite atualmente definir este tipo de rede com mais facilidade do que quando o tópico de origem foi criado. Utilize o modelo de configuração Compose atual do ZimaOS ao criar uma rede partilhada para o Nextcloud e a MariaDB.

Preserve deliberadamente os dados da MariaDB

Se a MariaDB já contiver uma base de dados Nextcloud funcional, não elimine o respetivo diretório de dados persistentes apenas para alterar a rede Docker. A participação na rede pode ser alterada sem recriar o conteúdo da base de dados.

Antes de qualquer migração, faça uma cópia de segurança da base de dados e registe o utilizador atual, o nome da base de dados e o mapeamento do volume.

Não desative os controlos de segurança do Nextcloud para reparar o DNS do Docker

Definições como domínios fidedignos, acesso remoto local ao servidor e configuração de proxy inverso protegem o Nextcloud na camada HTTP/aplicacional. Só devem ser alteradas quando o erro correspondente do Nextcloud o exigir.

A getaddrinfo O erro relativo ao nome do anfitrião da base de dados pertence à camada de rede Docker.

Uma árvore de diagnóstico melhor

  1. Confirme que a MariaDB está em execução e a escutar na porta 3306.
  2. Confirme que a base de dados pretendida existe e que as credenciais são conhecidas.
  3. Teste se o Nextcloud consegue resolver o nome do anfitrião da base de dados.
  4. Se a resolução do nome do anfitrião falhar, teste o IP do contentor da base de dados.
  5. Se o IP funcionar, corrija a rede Docker em vez de alterar as palavras-passe da base de dados.
  6. Mova ambos os contentores para uma rede estável definida pelo utilizador, para obter um nome de anfitrião duradouro.

Perguntas frequentes sobre o Nextcloud e a MariaDB

A própria MariaDB estava avariada?

Não. O respetivo registo mostrava que estava pronto para aceitar ligações.

O que significava «getaddrinfo for mariadb failed»?

O Nextcloud não conseguiu resolver o nome do anfitrião da base de dados antes de chegar sequer à fase de autenticação.

O que confirmou o diagnóstico?

Usar o IP Docker direto do contentor MariaDB permitiu que o Nextcloud começasse a ser instalado.

O IP direto do contentor deve ser o anfitrião permanente da base de dados?

Pode funcionar, mas uma rede Docker partilhada, definida pelo utilizador, com resolução estável de nomes é mais robusta.

A reinstalação de ambas as aplicações resolveu o problema?

Não. O utilizador de origem efetuou uma reinstalação limpa e o mesmo erro de resolução do nome do anfitrião voltou a ocorrer.