Sequelize не работает в docker (Узел + Postgres) - PullRequest
0 голосов
/ 09 февраля 2020

Даже если контейнеры подключены к одной и той же сети, при выполнении миграции в sequelize возвращается ошибка 'getaddrinfo ENOTFOUND'.

Если я удаляю адрес хоста в настройках базы данных. js миграция запускается, но процедуры CRUD прекращают работу, возвращая ошибку «connect ECONNREFUSED 127.0.0.1:5432"

Если я указываю на контейнер« postgresdb »в настройках« database. js », CRUD подпрограммы выполняются, но миграция по очереди не выполняется.

Помогите мне, пожалуйста

Фрагмент docker проверка сети в мосте

"Containers": {
            "35467ab419c3632c4c0cfe57e972bd94c7de0a5818e37fdae6eb82a25381ceab": {
                "Name": "api",
                "EndpointID": "d54d95b94bec543fa831526d1abb99346045efc4cc5f4425d5d59b200ece3e62",
                "MacAddress": "02:42:ac:1a:00:05",
                "IPv4Address": "172.26.0.5/16",
                "IPv6Address": ""
            },
            "7e028bcd80948fd61d14ff87437b963af31291220b7adbc8861fb98a2171f04a": {
                "Name": "postgresdb",
                "EndpointID": "e1d55e0fe8658a142880da27eea12a47d73f6cce472eeff38322ed4d6a60e8ad",
                "MacAddress": "02:42:ac:1a:00:03",
                "IPv4Address": "172.26.0.3/16",
                "IPv6Address": ""
            },

My docker -compose.yml

version: '3'

networks:
  api:
    driver: bridge

services:
  api:
    container_name: api
    depends_on:
      - postgresdb
      - mongodb
      - redisdb
    links: 
      - postgresdb
    environment: 
      POSTGRES_HOST: postgresdb
    build: .
    volumes:
      - .:/home/node/api
    command: yarn dev
    networks:
      - api
    ports:
      - 3333:3333


  postgresdb:
    image: postgres:alpine
    container_name: postgresdb
    environment: 
      - POSTGRES_USER=docker
      - POSTGRES_PASSWORD=docker
      - POSTGRES_DB=postdb
    networks:
      - api
    ports:
      - "5432:5432"


  mongodb:
    image: mongo
    container_name: mongodb
    networks:
      - api
    ports:
      - "27017:27017"


  redisdb:
    image: redis
    container_name: redisdb
    networks:
      - api
    ports:
      - "6379:6379"

Моя база данных. js file

require('dotenv/config');

module.exports = {
  dialect: process.env.DB_DIALECT,
  host: process.env.POSTGRES_HOST,
  username: process.env.POSTGRES_USER,
  password: process.env.POSTGRES_PASSWORD,
  database: process.env.POSTGRES_DB,
  define: {
    timestamps: true,
    underscored: true,
    underscoredAll: true,
  },
};

...