Docker dpage/pgAdmin-拒绝权限/var/lib/pgAdmin/storage



我有一个运行在Ubuntu 20.04上的dpage/pgadmin:最新Docker容器。

Client: Docker Engine - Community
Version:           20.10.8
Server: Docker Engine - Community
Engine:
Version:          20.10.8
docker-compose version 1.25.4, build 8d51620a

现在我想手动将用pgadmin创建的数据库中的备份保存到另一个位置。使用pgadmin创建的备份存储在/var/lib/pgadmin/storage中。因此,我将此路径添加到docker-compose.yml中的docker卷中。

volumes:
- pgadmin_dat:/var/lib/pgadmin
- /etc/localtime:/etc/localtime:ro
- pgadmin_share:/var/lib/pgadmin/storage

当我现在启动容器时,我得到了这个错误:

werkzeug.exceptions.InternalServerError: 500 Internal Server Error: The user does not have permission to read and write to the specified storage directory.

出现此错误是因为我的卷中的目录将root:root作为所有者,而不是像这里提到的5050:5050:pgAdmin容器部署

当我用sudo chown -R 5050:5050 <pgadmin_share>sudo chmod -R u+rwx更改卷上的权限时,错误消失,pgAdmin可用。

当我创建备份时,我必须再次设置自动创建的子数据库(pgadmin用户的用户名(的权限。

嵌套卷是否有问题,因为我已经装载了pgadmin_dat:/var/lib/pgadmin

我很好奇如何更好地解决这个问题。

我很乐意接受任何建议。

如果您在本地环境中工作,则应在目录sudo chmod 777 -R pgadmin_dat/中进行设置。它将解决你未来的所有问题。否则,如果您需要更多的安全性,请设置sudo chmod 5050 -R pgadmin_dat/,它将使您的pgadmin_dat文件夹可供写入。所以,您应该对本地机器中的每个文件夹设置相同的方式,而不是在容器中,您需要读/写这些文件夹。

相关内容

最新更新