[英]PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
[英]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'] %>
...
为了记录,可悲的是,当down
容器并再次建造它们时,问题就消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.