Din docker-compose exponerar inte automatiskt tcp-portar för den yttre världen, som din värddator (jag antar att dina nodeJs körs på värd och ingår inte i docker-compose ). Detta är beteendet hos docker bridge networks , du kan läsa mer på https://docs.docker.com/network/bridge/
Du måste göra något av följande:
Inkludera din NodeJs-behållare i docker-compose
eller
Exponera portar från docker-compose.yml