我有一个运行在Ubuntu 20.04上的dpage/pgadmin:latest 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
?
我很想知道如何更好地解决这个问题。
我会很高兴听取任何建议。