不确定我为什么收到SequelizeConnectionRefusedError。我确认可以在本地运行所有docker映像,但是当我尝试运行docker-compose up命令时,我遇到了错误:连接ECONNREFUSED 127.0.0.1:5432。
答案 0 :(得分:2)
根据我对您问题的理解,以下是我的假设:
话虽如此,这对于想要将其Docker容器连接到主机上运行的Postgres服务器的MacOS用户来说是一个常见问题。由于它们不在同一个网络中,因此您的容器无法到达Postgres服务器,因此,绝对无法通过127.0.0.1:5432
连接到它。
在Linux机器中通过添加network_mode: host
来解决问题是很简单的,这样容器将与主机在同一网络中运行,因此能够访问Postgres服务器。但是,由于在Mac上实施了Docker,而Docker主机实际上是在MacOS顶部的隐藏VM中运行的,因此此解决方案在这里不起作用。
一些建议:
docker-compose
文件中运行)。您始终可以进行端口映射,以便从Postbird中访问它。以下是将Postgres服务器迁移到使用Docker容器的步骤
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
localhost:35432
上使用Postbird连接到新的postgres。编辑1
如果您在AWS RDS中运行Postgres实例,则无需进行以上更改,但请执行其他步骤:
UDAGRAM_HOST
的值更新为可以从AWS RDS控制台找到的RDS端点。