2016-09-22 89 views
2

我正在開發容器並使用docker-compose來解除它們。 我會不時運行docker-compose down並重建容器。大部分的時間我得到這個錯誤具有PG :: ConnectionBad的Rails,Postgres和Docker「/var/run/postgresql/.s.PGSQL.5432」?

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服務的內容,或者這關係到用戶的容器?

+0

你有沒有解決這個問題? – creimers

+0

@creimers不完全。看到接受的答案。 – Sebastialonso

回答

0

爲了記錄在案,並且可悲的是,問題就走了,當down集裝箱並再次建造它們。

1

添加在泊塢窗,compose.yml用戶

version: '2' 
services: 
    users: 
    environment: 
     DATABASE_URL:postgres://user:[email protected]:5432/datex_dev?pool=5&encoding=utf-8 
    .... 

添加在database.yml中

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

Docker - PG::ConnectionBad