ale*_*edt 5 ubuntu pgadmin docker docker-compose docker-volume
我有一个 dpage/pgadmin:在 Ubuntu 20.04 上运行的最新 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
Run Code Online (Sandbox Code Playgroud)
现在我想手动将备份从使用 pgadmin 创建的数据库保存到另一个位置。使用 pgadmin 创建的备份存储在/var/lib/pgadmin/storage. 所以我将此路径添加到我的docker-compose.yml.
volumes:
- pgadmin_dat:/var/lib/pgadmin
- /etc/localtime:/etc/localtime:ro
- pgadmin_share:/var/lib/pgadmin/storage
Run Code Online (Sandbox Code Playgroud)
当我现在启动容器时,我收到此错误:
werkzeug.exceptions.InternalServerError: 500 Internal Server Error: The user does not have permission to read and write to the specified storage directory.
Run Code Online (Sandbox Code Playgroud)
发生此错误是因为我的卷中的目录成为root:root所有者,而不是5050:5050像此处提到的那样:
pgAdmin 容器部署
当我更改卷上的权限时sudo chown -R 5050:5050 <pgadmin_share>,sudo chmod -R u+rwx错误消失并且 pgAdmin 可用。
当我创建备份时,我必须在自动创建的子目录(pgadmin 用户的用户名)上再次设置权限。
嵌套卷是否有问题,因为我已经安装了pgadmin_dat:/var/lib/pgadmin?
我很好奇如何才能更好地解决这个问题。
我很乐意接受任何建议。
小智 0
如果您在本地环境中工作,则应该在您的目录中进行设置sudo chmod 777 -R pgadmin_dat/。它将解决您未来的所有问题。否则,如果您需要更多安全性,请设置sudo chmod 5050 -R pgadmin_dat/,它将让您的pgadmin_dat文件夹可供写入。因此,您应该以相同的方式对本地计算机中的每个文件夹进行设置,而不是在容器中,您需要读/写。
| 归档时间: |
|
| 查看次数: |
1194 次 |
| 最近记录: |