Seu
docker-compose não expõe automaticamente as portas tcp para o mundo exterior, como seu PC host (presumo que seus nodeJs é executado no host e não está incluído no docker-compose ). Este é o comportamento de docker bridge networks , você pode ler mais em https://docs.docker.com/network/bridge/ Você tem que fazer um dos seguintes:
Inclua seu contêiner NodeJs em
docker-compose ou
Expor portas de
docker-compose.yml