Dette:
mysql:
image: mysql:5.7
environment:
...
ports:
- "3307:3306"
Betyder, at Docker vil kortlægge 3307 port for værten til 3306 containerens havn. Så du kan få adgang fra Sequel til localhost:3307 .
Det betyder dog ikke, at containeren lytter til 3307; containeren lytter faktisk stadig til 3306 . Når andre containere forsøger at få adgang til mysql DNS, det bliver oversat til den interne container-IP, derfor skal du oprette forbindelse til 3306 .
Så din node-konfiguration skulle se sådan ud:
const config = {
host: 'mysql',
database: 'mydb',
port: '3306',
user: 'mysql',
password: '1234',
connectionLimit: 10
}
Og dette i din docker-compose.yml:
command: ["./wait-for-it.sh", "mysql:3306"]