You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Ruby on Rails应用连接至宿主机Docker运行的Postgres数据库

问题原因

你的Rails数据库配置中缺少host参数,PostgreSQL适配器在未指定host时会默认尝试通过Unix域套接字连接本地数据库,而你通过Docker启动的Postgres容器未将Unix套接字映射到宿主机的/tmp目录,因此触发找不到套接字文件的报错。

修复方案

修改database.yml的development配置块,新增host指定走TCP协议连接容器映射的端口:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  database: myapp_development
  user: user
  password: password
  host: 127.0.0.1 # 新增该配置
  # 如果你修改了docker run的端口映射规则,需额外补充对应port配置,例如映射端口为5433时添加 port: 5433
验证排查步骤
  • 执行docker ps确认Postgres容器处于正常运行状态,端口映射规则为0.0.0.0:5432->5432/tcp
  • 本地终端执行psql -h 127.0.0.1 -U user myapp_development,输入密码password验证是否可以正常连接数据库,能成功进入psql交互终端则说明数据库侧配置无问题。

内容的提问来源于stack exchange,提问作者user3895395

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:48:10