Questo:
mysql:
image: mysql:5.7
environment:
...
ports:
- "3307:3306"
Significa che Docker mapperà il 3307
porta dell'host al 3306
porto del container. Quindi puoi accedere da Sequel a localhost:3307
.
Tuttavia, ciò non significa che il contenitore stia ascoltando 3307
; il contenitore infatti sta ancora ascoltando 3306
. Quando altri contenitori tentano di accedere a mysql
DNS, viene tradotto nell'IP del contenitore interno, quindi devi connetterti a 3306
.
Quindi la configurazione del tuo nodo dovrebbe essere simile a:
const config = {
host: 'mysql',
database: 'mydb',
port: '3306',
user: 'mysql',
password: '1234',
connectionLimit: 10
}
E questo nel tuo docker-compose.yml:
command: ["./wait-for-it.sh", "mysql:3306"]