initdb:无法改变Postgresql容器上目录的权限[英] initdb: could not change permissions of directory on Postgresql container

本文是小编为大家收集整理的关于initdb:无法改变Postgresql容器上目录的权限的处理方法,想解了initdb:无法改变Postgresql容器上目录的权限的问题怎么解决?initdb:无法改变Postgresql容器上目录的权限问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我是Docker生态系统的新手,我正在尝试通过使用YAML Composer文件来旋转一个简单的Postgres容器以及卷,因此它坚持其数据.该文件如下:

# Use postgres/example user/password credentials
version: '3.3'
services:
    db:
        image: postgres
        environment:
            POSTGRES_DB: recrow
            POSTGRES_USER: recrow
            POSTGRES_PASSWORD: recrow_db_1000
            PGDATA: /var/lib/pgsql/data/pgdata
        volumes:
          - ./pgsql/data:/var/lib/pgsql/data/pgdata

但是,打电话给docker-compose -f stack.yml up我会收到以下错误:

在现有目录上修复权限 /var/lib/postgresql/data/pgdata ... initdb:无法更改 目录"/var/lib/postgresql/data/pgdata"目录的权限:操作 不允许

/var/lib/pgsql/data/pgdata应该是相对于容器根的目录,而./pgsql/data是主机上的路径.我正在从安装在/mnt/storage上的NTFS-3G分区中运行容器.可能是什么问题呢?我还通过将用户添加到Docker Group中,并且该用户还可以完全访问buforemention formention formention formention forment Point /mnt/storage.

推荐答案

我猜这将是与NTFS-3G的不相容性. PostgreSQL映像包含一个入门点脚本,该脚本正在对容器开始进行一些许可更改: https://github.com/docker-library/postgres/blob/972294A377463156C8D61297320C872FC7D370A9/9.6/9.6/docker-entrypoint.6/我在 https://askubuntu.com/questions/11840/how-do-i-i-i-is-chmod-on-an-ntfs-or-fat32-分 - ,它谈论了能够在安装时设置权限.但是无法通过chmod或chown进行更改(在这种情况下可能是故障的原因).

不幸的是,我认为这里的答案是您不能安全地使用NTFS-3G来备份Docker主机音量安装.

其他推荐答案

在上面的 @liam-Mitchell的注释之后,这就是答案.使用命名量如下:

services:
  db:
    image: postgres:12-alpine
    volumes:
      - "postgres:/data/postgres"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - PGDATA=/data/postgres

...

volumes:
  postgres:

其他推荐答案

我与OpenShift一起工作,并遇到了同样的问题来运行Docker Hub的官方图像.

在我的情况下,解决方案是使用Red Hat存储库中的官方Postgres图像,Red Hat存储库的图像已解决了此问题,这可能是替代的.

本文地址:https://www.itbaoku.cn/post/1764037.html