【问题标题】:Postgres on Docker in AzureAzure 中 Docker 上的 Postgres
【发布时间】:2020-06-15 08:50:18
【问题描述】:

我尝试在 Azure Web 应用程序中运行 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。

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

【问题讨论】:

  • 另外,请允许我问一个问题,WebApp 是否是运行 postgres 的最佳方式?!您是否考虑过使用 Azure 管理的 postgresql 服务?
  • 天蓝色管理的 postgres 是一个选项,如果我不能让它工作。 Azure Container Service也是一个选项,但是问题还是和上面一样。
  • @StefanS 你能在 Azure Web 应用程序中运行它吗?
  • @RajatArora 不幸的是,你需要附加一个磁盘 -> 我最终使用了 Kubernetes (AKS)

标签: postgresql azure docker docker-compose azure-web-app-service


【解决方案1】:

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

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

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

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

查看更多关于限制here的详细信息。

【讨论】:

  • 所以没有解决办法?
  • @StefanS 如果您使用 AKS,那么您可以尝试使用磁盘的持久卷。这是一个解决方案。
  • 好的,这是一个解决方案!你能给我指出一个起点(文档或某事)吗?
  • @StefanS 是的,你可以看看persist volume with the disk
猜你喜欢
  • 1970-01-01
  • 2021-03-12
  • 2019-02-12
  • 1970-01-01
  • 2018-01-16
  • 2017-02-12
  • 2021-12-12
  • 1970-01-01
  • 2021-02-17
相关资源
最近更新 更多