To:
mysql:
image: mysql:5.7
environment:
...
ports:
- "3307:3306"
Oznacza, że Docker zmapuje 3307
port hosta na 3306
port kontenera. Możesz więc uzyskać dostęp z Sequel do localhost:3307
.
Nie oznacza to jednak, że kontener nasłuchuje 3307
; kontener faktycznie wciąż nasłuchuje 3306
. Gdy inne kontenery próbują uzyskać dostęp do mysql
DNS, zostaje przetłumaczony na wewnętrzny adres IP kontenera, dlatego musisz połączyć się z 3306
.
Tak więc konfiguracja węzła powinna wyglądać tak:
const config = {
host: 'mysql',
database: 'mydb',
port: '3306',
user: 'mysql',
password: '1234',
connectionLimit: 10
}
A to w twoim docker-compose.yml:
command: ["./wait-for-it.sh", "mysql:3306"]