Исходя из моего понимания вашего вопроса, вот мои предположения:
- Вы используете MacOS
- Ваш сервер Postgres работает в операционной системе хоста, а не в другой Контейнер docker.
С учетом вышесказанного, это общая проблема для пользователей MacOS, которые хотят подключить свои контейнеры docker к серверу Postgres, работающему на хост-компьютере. Поскольку они не находятся в одной сети, ваш контейнер не сможет добраться до сервера Postgres и, следовательно, подключение к нему через 127.0.0.1:5432
определенно не будет достигнуто.
Это будет тривиально решить на машине Linux, добавив network_mode: host
, чтобы контейнеры работали в той же сети, что и хост-машина, и, следовательно, могли достичь сервера Postgres. Однако из-за реализации Docker на Ma c, где хост Docker фактически выполняется в скрытой виртуальной машине поверх вашей MacOS, это решение не будет работать здесь.
Некоторые предложения:
- Перенесите сервер Postgres для запуска в контейнере docker (в том же файле
docker-compose
, если хотите). Вы всегда можете выполнить сопоставление портов, чтобы получить к нему доступ из своего Postbird. - Или, если вы все еще настаиваете на запуске его локально в 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.