我尝试在Azure Web App中运行Postgres Docker容器。 当我尝试将卷挂载到 Data 文件夹时,出现错误:致命:数据目录"/var/lib/postgresql/data"的所有权错误
我的撰写脚本:
version: "3"
services:
db:
image: postgres:11.2
environment:
- POSTGRES_USER=test
- POSTGRES_PASSWORD=test
- POSTGRES_DB=test
volumes:
- ${WEBAPP_STORAGE_HOME}/data:/var/lib/postgresql/data
ports:
- "5433:5432"
Docker 主机设置为 linux。
如何解决此问题? (如果我不这样做,则每次重新启动/容器更新时数据都会丢失(
对于这个问题,你可以看看镜像postgres
的 Dockerfile 。有一个步骤可以使用以下命令更改目录/var/lib/postgresql
的所有权:
chown -R postgres:postgres /var/lib/postgresql
但是,在 Azure Web 应用中使用持久性存储时,无法更改它的权限。所以它会导致错误:
致命:数据目录"/var/lib/postgresql/data"的所有权错误
在此处查看有关限制的更多详细信息。