Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[ERRO] connect() failed (111 connection refused) while connecting to upstream

Help? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Olá, Arthur! Parece que você está enfrentando um problema com a conexão ao tentar subir seu projeto, certo? O erro "connect() failed (111: Connection refused) while connecting to upstream" geralmente ocorre quando o servidor está tentando se conectar a um serviço upstream (como um banco de dados ou outro servidor), mas a conexão é recusada.

Com base no contexto da aula que você compartilhou, parece que você está tentando subir vários microsserviços usando Docker. A mensagem de erro pode indicar que um desses serviços não está pronto para aceitar conexões quando o servidor tenta se conectar a ele. Isso pode acontecer se o serviço ainda não foi totalmente inicializado, ou se houve um problema ao inicializá-lo.

Uma possível solução para este problema é garantir que todos os serviços estejam prontos para aceitar conexões antes de tentar se conectar a eles. Você pode fazer isso adicionando um script de espera (wait script) ao seu arquivo Docker Compose, que irá pausar a execução do servidor até que todos os serviços estejam prontos. Aqui está um exemplo de como você pode fazer isso:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    depends_on:
      - db
    command: ["./wait-for-it.sh", "db:5432", "--", "python", "app.py"]

  db:
    image: postgres

Neste exemplo, o script wait-for-it.sh é um script que irá esperar até que o serviço db esteja pronto para aceitar conexões na porta 5432 antes de iniciar o servidor web com python app.py. Você pode encontrar o script wait-for-it.sh e mais detalhes sobre como usá-lo aqui.

Por favor, observe que este é apenas um exemplo e você pode precisar ajustá-lo para se adequar à sua configuração específica. Além disso, este é apenas um possível motivo para o erro que você está vendo, e pode haver outros fatores em jogo.

Espero ter ajudado e bons estudos!

solução!

Olá, Matheus. Obrigado pela resposta!

Olhando o log com mais calma hoje, percebi que o problema estava no mongodb. O docker-compose não estava especificando a versão do mongo e estava usando a mais recente. E meu computador não suporta a versão mais recente. "MongoDB 5.0+ requires a CPU with AVX support, and your current system does not appear to have that!" Então pesquisei sobre esse problema na internet e vi que em alguns foruns sugeriram usar uma versão anterior a 5.0. Alterei o docker-compose especificando a versão do mongo e funcionou.

  mongo-mkt:
    image: mongo:4.4.6
    environment:
      MONGO_INITDB_ROOT_USERNAME: mkt-usuario
      MONGO_INITDB_ROOT_PASSWORD: mkt-senha
      MONGO_INITDB_DATABASE: mkt

Espero que isso ajude outras pessoas que por acaso venham a ter o mesmo problema que eu tive.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software