Dies:
mysql:
image: mysql:5.7
environment:
...
ports:
- "3307:3306"
Bedeutet, dass Docker den 3307
zuordnen wird Port des Hosts auf 3306
Hafen des Containers. Sie können also von Sequel aus auf localhost:3307
zugreifen .
Dies bedeutet jedoch nicht, dass der Container auf 3307
lauscht; der Container hört tatsächlich immer noch auf 3306
. Wenn andere Container versuchen, auf mysql
zuzugreifen DNS, es wird in die interne Container-IP übersetzt, daher müssen Sie sich mit 3306
verbinden .
Ihre Knotenkonfiguration sollte also folgendermaßen aussehen:
const config = {
host: 'mysql',
database: 'mydb',
port: '3306',
user: 'mysql',
password: '1234',
connectionLimit: 10
}
Und das in Ihrer docker-compose.yml:
command: ["./wait-for-it.sh", "mysql:3306"]