5
respostas

Erro ao tentar construir containers com compose.

sudo docker-compose build

Funciona até a etapa de executar o comando:

npm  install

Após alguns segundos o seguinte erro é retornado:

npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/express failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-09-09T19_43_51_598Z-debug.log
ERROR: Service 'node1' failed to build : The command '/bin/sh -c npm install' returned a non-zero code: 1

O que poderia ser?

5 respostas

PS: Estou usando o docker dentro de um VM com CentOS 8 instalado. A VM em si está instalada no Windows 10.

Oi Igor

Envia o conteúdo do log em /root/.npm/logs/2020-09-09T1943_51_598Z-debug.log

Olá Otávio,

Não sei como enviar este log, pois o mesmo é gerado dentro do container, que não está terminando o processo de construção devido ao erro acima.

Nas minhas diversas tentativas, cheguei a conclusão de que dentro do container usando o docker-compose, não está sendo possível resolver servidores de DNS.

Pedi a um amigo que instalasse na sua VM que estava instalada Ubuntu e funcionou perfeitamente.

Investigando um pouco mais a fundo, rodei:

RUN ping -c 3 registry.npmjs.org

O que retornou o seguinte:

https://media.discordapp.net/attachments/637712612548673559/753504924792389672/unknown.png

Tentamos reinstalar o CentOS em uma nova VM e o erro persistiu tanto na minha máquina, quanto na dele. O que me leva a crer que seja um problema da distro que eu usei.

npm ERR! request to https://registry.npmjs.org/express failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org

pelo erro acima é alguma falha de DNS do npm. Você está usando container windows?

Dando uma pesquisada, tenta criar o arquivo /etc/docker/daemon.json com o conteúdo abaixo:

{
    "dns": ["10.0.0.2", "8.8.8.8"]
}

fonte: https://github.com/StefanScherer/dockerfiles-windows/issues/270

Estou usando o docker no CentOS 8 que está na VM. Eu tentei essa solução mas não resolveu.

Hoje eu instalei o WSL2 no meu Windows e testei usando o Ubuntu. Funcionou, então acho que vou manter assim. No final das contas isso parece ser algum conflito com o CentOS, ou alguma configuração que eu deixei de fazer.