Docker + Fastify e ECONNRESET

As vezes eu tomo uma decisões bem ruins no desenvolvimento de coisas e projetos que tenho. Não gosto de jogar no safe que é o bom e velho express e nessa busca de testar coisas novas e colocar em produção acabo sofrendo mais do que deveria.

Após gastar umas 2 horas configurando o Docker para subir um servidor de auth com (aguarde p/ novidades), acabei gastando outras 3 horas tentando entender como o servidor e endpoint de checagem funcionava normalmente dentro do container, mas não funcionava de jeito nenhum ao ser chamado por curl ou postman.

Então vou deixar aqui um pouco da minhas investigação que passou por refazer o Dockerfile e criar expose da porta, teste de api rodando localmente e funcionando normalmente.

Essa postagem do stackoverflow já dá uma pista com relação ao host e a falta de interação da API com as portas da sua imagem.

Fastify not working on Docker / Kubernetes
I have very simple app that returns “Hello World” string, it works fine locally. As you will see from app code below it runs on port 4000. When I create docker image and run a container, I can’t ac…

Algo que é explicado e bem detalhado nessa outra postagem do Medium

Fastify + Docker = 🚀
Update: I recently expanded upon this post in another story, where I altered the Dockerfile to use distroless: Fastify + Distroless Docker…

Então resumindo e facilitando, API em Fastify, configure o parâmetro host para 0.0.0.0 se quiser ela funcionando com Docker, espero ter salvo seu tempo com esse conhecimento que adquiri.

E depois eu explico melhor sobre esse serviço de autenticação que estou fazendo, é algo bem interessante.