Това:
mysql:
image: mysql:5.7
environment:
...
ports:
- "3307:3306"
Означава, че Docker ще съпостави 3307
порт на хоста към 3306
порт на контейнера. Така че можете да получите достъп от Sequel до localhost:3307
.
Това обаче не означава, че контейнерът слуша 3307
; контейнерът всъщност все още слуша 3306
. Когато други контейнери се опитват да осъществят достъп до mysql
DNS, той се превежда във вътрешния IP на контейнера, следователно трябва да се свържете с 3306
.
Така че конфигурацията на вашия възел трябва да изглежда така:
const config = {
host: 'mysql',
database: 'mydb',
port: '3306',
user: 'mysql',
password: '1234',
connectionLimit: 10
}
И това във вашия docker-compose.yml:
command: ["./wait-for-it.sh", "mysql:3306"]