Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

Minha aplicação subiu constando "app-1 | server running on port undefined"

Vou investigar o motivo da porta ter ficado "x".

2 respostas

Após tentar subir a aplicação na mão, via npm install e npm start, a porta veio certinha. Daí dei docker compose down e up e a porta manteve: "app-1 | server running on port 3000". Porém, ao bater lá, veio o erro "Cannot GET /". Além disso, na video aula o prof não mostra a aplicação rodando no browser, apenas a mensagem do docker de "aplicação rodando", daí eu não consigo checar o que era pra aparecer pra mim.

Enfim, o curso não é sobre isso, vamos em frente =)

Olá, Eduardo! Tudo bem?

Que legal o diagnóstico que você fez! Investigar o comportamento rodando o npm start localmente foi uma ótima sacada para isolar o problema.o que pode ter ocorrido:

1. A porta undefined

No arquivo .env da aplicação, a porta é definida pela variável SERVER_PORT=3000. Mas, se o Docker não conseguir ler esse arquivo .env corretamente durante o primeiro up, ou se a variável não estiver explicitamente mapeada no bloco environment do docker-compose.yml, o Node.js tenta ler process.env.SERVER_PORT, não encontra nada e exibe undefined.
Ao rodar localmente na sua máquina, o Node conseguiu ler o arquivo .env diretamente, o que normalizou o comportamento quando você voltou para o Docker.

2. O Cannot GET /

  • Isso prova que a rede do Docker funcionou: a requisição saiu do seu navegador, passou pelo mapeamento de portas e chegou com sucesso ao servidor Node.js.
  • Esse texto Cannot GET / é uma resposta padrão do framework Express (usado no Node.js). Ela acontece quando o servidor está de pé, mas não há nenhuma rota configurada para o caminho principal (/) ou não há arquivos estáticos (como um index.html) para carregar ali.

Como o professor comentou na aula, o objetivo principal desse teste era garantir que o container do app conseguisse se conectar ao banco de dados sem quebrar!

Agora que o ambiente Docker está validado, você está pronto para ver como o Kubernetes gerencia a resiliência desse cenário!

Você conseguiu compreender melhor o porquê desse comportamento?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!