Docker Compose Sql DB ошибка подключения образа - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть файл docker-compose.yml, и я хочу создать три контейнера для запуска моего приложения узла: клиент, сервер, контейнер базы данных с некоторыми данными.

У меня проблемы с созданием контейнера db и подключением его к контейнеру сервера, я использую sequelize для соединения с db, но по команде docker-compose up у меня ошибка подключения при запуске приложения сервера:

server_1 | Невозможно подключиться к базе данных SQL: webgrit_superactivation {SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306

это мой docker-compose файл:

version: "3"

services:
  # client
  client:
    image: "ngapp"
    build: "client/dist/."
    ports:
      - "4200:80"
  # Server
  server:
    image: "exapp"
    build: "server/."
    ports:
      - "3000:3000"
    links:
      - db
  # MySQL
  db:
    image: mysql:5.7
    command: mysqld --user=root
    volumes: 
      - ./mysql-dump:/docker-entrypoint-initdb.d
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypass
      MYSQL_DATABASE: mydbname

в образе mysql Я использую data.sql файл дампа для инициализации моей базы данных, но что-то не так

это мой файл-контейнер dbconfig.js, который я использую для соединения с MySQL DB:

CONFIG.db_name = process.env.DB_NAME_DEV || "mydbname";
CONFIG.db_user = process.env.DB_USER_DEV || "myuser";
CONFIG.db_password = process.env.DB_PASSWORD_DEV || "mypass";
CONFIG.db_dialect = process.env.DB_DIALECT_DEV || "mysql";
CONFIG.db_host = process.env.DB_HOST_DEV || "localhost";
CONFIG.db_port = process.env.DB_PORT_DEV || "3306";

и это начало моего data.sql файла дампа:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";

CREATE DATABASE IF NOT EXISTS `mydbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `mydbname`;

CREATE TABLE `users` (
...

Редактировать: здесь вы можете найти журнал ошибок: https://github.com/ufollettu/SEANSA/blob/master/docker%20error%20log.log

Я довольно новичок в докере, как я могу решить эту проблему? спасибо за помощь

1 Ответ

0 голосов
/ 12 ноября 2018

Изменение хоста на имя службы БД, т.е. db -

CONFIG.db_host = process.env.DB_HOST_DEV || "db";

...