У меня есть сборка приложения Node js с express и продолжение. Моя база данных - Mysql. Я использую docker для создания контейнера из этого приложения. Я просто использовал docker compose для узла и Mysql.
Вот мой файл конфигурации базы данных для sequlize
const Sequelize = require('sequelize');
const sequelize = new Sequelize('sample_db', 'root', '123456', {
host: 'mysql',
dialect: 'mysql',
})
sequelize.authenticate()
.then(() => {
console.log('DB connected');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
var db = {};
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
Вот мой docker файл компоновки
version: "3"
services:
app:
container_name: my_app
build: .
ports:
- 5000:3000
depends_on:
- mysql
expose:
- "5000"
mysql:
image: mysql
restart: always
environment:
- MYSQL_PASSWORD=1234
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DB=sample_db
ports:
- "3307:3306"
Но sequelize не подключен должным образом и выдает следующую ошибку:
SequelizeConnectionRefusedError: connect ECONNREFUSED 172.20.0.2:3306 at ConnectionManager.connect (/app/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:116:17)
Не могу исправить. Есть способ лучше?