如何将 Rails 应用程序连接到主机上的 docker postgres
Posted
技术标签:
【中文标题】如何将 Rails 应用程序连接到主机上的 docker postgres【英文标题】:how to connect Rails app to docker postgres on host machine 【发布时间】:2021-12-23 11:31:00 【问题描述】:我想像这样在没有 docker compose 的情况下运行 postgres 容器,并在 Ruby on Rails 应用程序中连接到它:
docker run -p 5432:5432 -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_DB=myapp_development postgres:13.4
我的 database.yml 文件如下所示
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: 5
development:
<<: *default
database: myapp_development
user: user
password: password
但是,在运行应用程序时出现以下错误:
无法连接到服务器:没有这样的文件或目录是服务器 在本地运行并接受 Unix 域套接字上的连接 “/tmp/.s.PGSQL.5432”?
我目前不想使用 docker compose
我错过了什么?
【问题讨论】:
【参考方案1】:运行后
docker run -p 5432:5432 -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_DB=myapp_development postgres:13.4
我可以通过运行从我的终端连接 postgresql
psql -h localhost -U user myapp_development
所以,我猜你只需要将host
选项添加到database.yml
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: 5
host: localhost
development:
<<: *default
database: myapp_development
user: user
password: password
【讨论】:
以上是关于如何将 Rails 应用程序连接到主机上的 docker postgres的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Windows 10 上的容器连接到 docker 主机(Docker for Windows)