Help?
Help?
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!
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.