Cái này:
mysql:
image: mysql:5.7
environment:
...
ports:
- "3307:3306"
Có nghĩa là Docker sẽ ánh xạ 3307
cổng của máy chủ tới 3306
cảng của container. Vì vậy, bạn có thể truy cập từ Sequel đến localhost:3307
.
Tuy nhiên, điều đó không có nghĩa là vùng chứa được liệt kê đến 3307
; thực tế vùng chứa vẫn đang nghe 3306
. Khi những vùng chứa khác cố gắng truy cập vào mysql
DNS, nó được dịch sang IP vùng chứa bên trong, do đó bạn phải kết nối với 3306
.
Vì vậy, cấu hình nút của bạn sẽ giống như sau:
const config = {
host: 'mysql',
database: 'mydb',
port: '3306',
user: 'mysql',
password: '1234',
connectionLimit: 10
}
Và cái này trong docker-compo.yml của bạn:
command: ["./wait-for-it.sh", "mysql:3306"]