簡體   English   中英

如何將 Rails 應用程序連接到主機上的 docker postgres

[英]how to connect Rails app to docker postgres on host machine

我想像這樣運行一個 postgres 容器,沒有 docker compose,並在一個 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

我錯過了什么?

運行后

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

所以,我想你只需要向database.yml添加host選項

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM