Ошибка: подключить ECONNREFUSED 127.0.0.1:5432 docker - составить - PullRequest
1 голос
/ 18 марта 2020

Не уверен, почему я получаю SequelizeConnectionRefusedError. Я подтвердил, что могу запускать все мои docker образы локально, но когда я пытаюсь выполнить команду 'docker -compose up', я сталкиваюсь с ошибкой: connect ECONNREFUSED 127.0.0.1:5432. enter image description here

1 Ответ

2 голосов
/ 18 марта 2020

Исходя из моего понимания вашего вопроса, вот мои предположения:

  • Вы используете MacOS
  • Ваш сервер Postgres работает в операционной системе хоста, а не в другой Контейнер docker.

С учетом вышесказанного, это общая проблема для пользователей MacOS, которые хотят подключить свои контейнеры docker к серверу Postgres, работающему на хост-компьютере. Поскольку они не находятся в одной сети, ваш контейнер не сможет добраться до сервера Postgres и, следовательно, подключение к нему через 127.0.0.1:5432 определенно не будет достигнуто.

Это будет тривиально решить на машине Linux, добавив network_mode: host, чтобы контейнеры работали в той же сети, что и хост-машина, и, следовательно, могли достичь сервера Postgres. Однако из-за реализации Docker на Ma c, где хост Docker фактически выполняется в скрытой виртуальной машине поверх вашей MacOS, это решение не будет работать здесь.

Некоторые предложения:

  1. Перенесите сервер Postgres для запуска в контейнере docker (в том же файле docker-compose, если хотите). Вы всегда можете выполнить сопоставление портов, чтобы получить к нему доступ из своего Postbird.
  2. Или, если вы все еще настаиваете на запуске его локально в MacOS, есть обходной путь , который включает создание другого * Контейнер 1062 * в той же сети docker и выполнить обратное туннелирование S SH.

Ниже приведены шаги по миграции сервера Postgres на использование docker контейнера

*. 1027 * Обновите docker-compose с помощью новой службы БД:
db:
    image: postgres:10.5-alpine
    environment:
        POSTGRES_USER: $UDAGRAM_USERNAME
        POSTGRES_PASSWORD: $UDAGRAM_PASSWORD
        POSTGRES_DB: $UDAGRAM_DATABASE
    ports:
        - 35432:5432
    volumes:
        - <path where you want to persist your database data>:/var/lib/postgresql/data
Теперь вы можете подключиться к вашему новому postgres с помощью Postbird по адресу localhost:35432

РЕДАКТИРОВАТЬ 1

Если вы запустите свой экземпляр Postgres в AWS RDS вам не нужно вносить изменения, описанные выше, но следуйте другим шагам:

  • Убедитесь, что ваша сеть может достичь конечной точки RDS через порт 5432. В этом случае рекомендуется обновить правила входящей группы безопасности, разрешающие только порт 5432 только с вашего IP-адреса (как это сделать выходит за рамки этого ответа, но его легко найти в AWS документации)
  • Обновите значение UDAGRAM_HOST - конечная точка RDS, которую можно найти с консоли AWS RDS.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...