【问题标题】:how to connect Rails app to docker postgres on host machine如何将 Rails 应用程序连接到主机上的 docker postgres
【发布时间】: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

我错过了什么?

【问题讨论】:

    标签: ruby-on-rails ruby postgresql docker ruby-on-rails-5


    【解决方案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
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多