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"]