ОШИБКА: подключить ECONNREFUSED 127.0.0.1:5432 докер мигрировать - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь перенести данные, но всегда не могу найти мой postgreSQL.

version: '3'
services:
  server:
    build: ./server
    ports:
      - 3002:3002
    depends_on:
      - db
    environment:
      CORS_ALLOW_ORIGINS: http://localhost:8080,http://localhost:80
      PORT: 3002
      DEBUG: vuichoi*
      DEBUG_HIDE_DATE: 1
      SECRET_OR_PRIVATE_KEY: secret
      SECRET_OR_PUBLIC_KEY: secret
      DATABASE_URL: postgres://vuichoi:@db:5432/vuichoi #point the server container to the db container's IP address
      command: bash -c "sequelize db:migrate && sequelize db:seed:all"
  db:
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: vuichoi
      POSTGRES_DB: vuichoi
    image: postgres:10

config.json

{
"development": {
    "username": "vuichoi",
    "database": "vuichoi",
    "host": "localhost",
    "dialect": "postgres"
},
"test": {
    "username": "vuichoi",
    "password": "vuichoi",
    "database": "database_test",
    "host": "localhost",
    "dialect": "postgres"
},
"production": {
    "use_env_variable": "DATABASE_URL"
}

}

после docker-составьте --build введите описание изображения здесь

при попытке миграции:

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

я исправил, заменив "localhost" в config.json на "host.docker.internal", тогда он работает гладко.проблема, может быть, он не может найти мой Db контейнер

0 голосов
/ 01 декабря 2018

Проблема в том, что вы запускаете сервер и базу данных одновременно, и при запуске сервера он пытается подключиться к БД, которая все еще запускается / создается.

Решением этой проблемы является использование сценария, который запускает сервер только через несколько секунд после запуска БД.В https://github.com/PedroS11/node-postgres-redis-docker у вас есть пример, entry-point.sh.Или, если хотите, найдите «docker it wait», и вы найдете сценарий для этого и другие примеры.

...