esto:
mysql:
image: mysql:5.7
environment:
...
ports:
- "3307:3306"
Significa que Docker mapeará el 3307
puerto del host al 3306
puerto del contenedor. Para que pueda acceder desde Sequel a localhost:3307
.
Sin embargo, no significa que el contenedor esté escuchando 3307
; el contenedor, de hecho, sigue escuchando 3306
. Cuando otros contenedores intentan acceder a mysql
DNS, se traduce a la IP del contenedor interno, por lo tanto, debe conectarse a 3306
.
Por lo tanto, la configuración de su nodo debería verse así:
const config = {
host: 'mysql',
database: 'mydb',
port: '3306',
user: 'mysql',
password: '1234',
connectionLimit: 10
}
Y esto en tu docker-compose.yml:
command: ["./wait-for-it.sh", "mysql:3306"]