繁体   English   中英

Rails,Postgres和Docker有PG :: ConnectionBad“/var/run/postgresql/.s.PGSQL.5432”?

[英]Rails, Postgres and Docker having PG::ConnectionBad “/var/run/postgresql/.s.PGSQL.5432”?

我正在开发容器并使用docker-compose来提升它们。 我会不时地运行docker-compose down并重建容器。 大多数时候我都会遇到这个错误

PG::ConnectionBad (could not connect to server: No such file or directory
     Is the server running locally and accepting
     connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
 ):

我不明白为什么Rails抱怨Postgres不在那里,如果整个容器再次被重建 此外,错误在一段时间后消失,没有我做任何其他停止,重新升级或重建容器的事情。 我转而使用容器进行开发,以便精确地摆脱这样的恼人问题。

这是我docker-compose.yml的内容

version: '2'
services:
  users:
    build:
      context: '.'
    links:
      - postgres
      - redis
    volumes:
     - ".:/app/users/"
    working_dir: /app/users
    command: [rails, server, -p, "3000", -b, 0.0.0.0]
    ports:
    - "3000:3000"

  postgres:
    image: postgres:9.5
    environment:
      POSTGRES_DB: somedb
      POSTGRES_USER: someuser
      POSTGRES_PASSWORD: somepass

  redis:
    image: redis:latest
    command: redis-server
    ports:
      - "6379:6379"
    volumes:
      - "redis:/var/lib/redis/data"

volumes:
  redis:

database.yml

development:
  <<: *default
  database: somedb
  user: someuser
  password: somepass
  host: postgres
  port: 5432

我错过了postgres服务的额外配置,还是与用户容器有关?

添加docker-compose.yml用户

 version: '2'
 services:
   users:
    environment:
        DATABASE_URL:postgres://user:pass@postgres:5432/datex_dev?pool=5&encoding=utf-8
   ....

添加database.yml

 development:
   <<: *default
   url: <%= ENV['DATABASE_URL'] %>  
   ...

请参阅Docker - PG :: ConnectionBad

为了记录,可悲的是,当down容器并再次建造它们时,问题就消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM