Docker создать файл не работает для Sequlize и Mysql в приложении Node - PullRequest
0 голосов
/ 04 августа 2020

У меня есть сборка приложения 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)

Не могу исправить. Есть способ лучше?

...