Em produção sempre usamos separado os databases, em seus devidos containers. Então usamos uma rede externa para comunicar os containers:
docker network create -d bridge minha_aplicacao
Listar as redes:
docker network ls
para inspecionar:
docker network inspect minha_aplicacao
Pra conectar containers já existentes:
docker network connect minha_aplicacao app-nodejs
Ai no docker-compose fica mais ou menos assim:
version: '2'
services:
app:
build: .
environment:
NODE_ENV: development
ports:
- '3000:3000'
tty: true
depends_on:
- mongodb
- mysql
- redis-queue
- redis-cache
external_links:
- redis-cache
- mysql
- mongodb
- redis-queue
networks:
default:
external:
name: minha_aplicacao