首页 > 解决方案 > Azure 中 Docker 上的 Postgres

问题描述

我尝试在 Azure Web App 中运行 Postgres Docker 容器。当我尝试将卷挂载到 Data 文件夹时,出现错误:FATAL: data directory "/var/lib/postgresql/data" has wrong Ownership

我的撰写脚本:

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。

我怎样才能解决这个问题?(如果我不这样做,每次重启/容器更新都会丢失数据)

标签: postgresqlazuredockerdocker-composeazure-web-app-service

解决方案


对于这个问题,你可以看一下镜像的 Dockerfile postgres。有一个步骤可以/var/lib/postgresql使用以下命令更改目录的所有权:

chown -R postgres:postgres /var/lib/postgresql

但是当你在 Azure Web App 中使用持久化存储时,你不能改变它的权限。所以它会导致错误:

致命:数据目录“/var/lib/postgresql/data”的所有权错误

在此处查看有关限制的更多详细信息。


推荐阅读