我在docker-compose图像上运行rails应用程序。在我创建用户设计之后,当我运行docker-compose run web rails db:migrate
时,它显示以下错误:PG::ConnectionBad: FATAL: could not open relation mapping file "global/pg_filenode.map": Permission denied
我已经尝试了所有解决方案rails和psql相关,所以我猜我的问题是与docker-compose程序不知何故,我也试过sudo
但结果是一样的
代码:我运行的命令是在docker-compose run web rails db:migrate
之后的docker-compose run web rails g devise usuario
这是输出:
rails aborted!
PG::ConnectionBad: FATAL: could not open relation mapping file "global/pg_filenode.map": Permission denied
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `initialize'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `new'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `connect'
其余的日志在这个链接:https://hastebin.com/axiboxohem.bash
你的问题似乎只是与Postgresql有关,检查你的postgres服务是否已启动,或者你是否拥有该文件夹中的权限。看看这个,也许有帮助:Postgres is failing with 'could not open relation mapping file "global/pg_filenode.map" '
事实证明,Docker上有多个相同图像的容器。我可以看到用docker ps -a -q
安装的额外容器,并用docker rm $(docker ps -a -q)
移除它们。这样做对我来说,我猜其中一个容器正在抓住文件。