Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 为什么postgres容器更改文件夹的所有者(docker compose)_Postgresql_Docker_Docker Compose - Fatal编程技术网

Postgresql 为什么postgres容器更改文件夹的所有者(docker compose)

Postgresql 为什么postgres容器更改文件夹的所有者(docker compose),postgresql,docker,docker-compose,Postgresql,Docker,Docker Compose,我的docker-compose.yml是 database: container_name: k4fntr_database build: ./docker/postgres restart: always environment: ENV: ${APP_ENV} TESTING_DB: ${DB_DATABASE_TESTING} POSTGRES_DB: ${DB_DATABASE} POSTGRES_US

我的docker-compose.yml是

  database:
    container_name: k4fntr_database
    build: ./docker/postgres
    restart: always
    environment:
      ENV: ${APP_ENV}
      TESTING_DB: ${DB_DATABASE_TESTING}
      POSTGRES_DB: ${DB_DATABASE}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    ports:
      - "15432:5432"
    volumes:
    - ./docker/postgres/pg-data:/var/lib/postgresql/data
    networks:
      - backend-network
我的Dockerfile是

FROM postgres:10.5-alpine

COPY /docker-entrypoint-initdb.d/ /docker-entrypoint-initdb.d/

RUN chmod 0755 -R /docker-entrypoint-initdb.d/
我跑步时有问题

docker compose up-d——构建

使用用户“70”和组“root”的错误权限创建了名为pg data的文件夹

此权限不允许我执行任何操作,例如查看文件夹内部。此外,当我尝试用

docker compose up-d——构建

我犯了一个错误

PermissionError:[Errno 13]权限被拒绝: “/home/ubuntu/PhpstormProjects/fntr/docker/postgres/pg data”[5262] 无法执行脚本docker compose

我以用户ubuntu:ubuntu的身份运行docker compose

当我在运行之前创建文件夹时,情况发生了一点变化

docker compose up-d——构建

在本例中,文件夹组为“ubuntu”,但所有者仍然为“70”


但是没有任何影响,所有问题都存在

Postgres在启动容器时运行入口点文件

此函数用于更改docker容器内目录的权限。由于此目录也装载在主机文件系统上,因此权限会反映在那里

在您的系统上,检查当前映射到uid-999的用户。你可以从那里得到线索。避免在此处发布/etc/passwd或/etc/shadow文件

您需要在docker compose中传递用户


请参见->任意--用户注释

请为图像添加Dockerfile。最有可能的情况是,容器正在以用户70的身份运行,并且正在使用此文件创建文件夹。在容器内,用户70可以通过
/etc/passwd
解析,但不能在主机上解析。我有dockerfile,但postgres中没有一些有趣的东西:10.5-alpine COPY/docker-entrypoint-initdb.d//docker-entrypoint-initdb.d/cat/etc/passwd | grep 999 guest sdklnd:x:999:guest:/tmp/guest sdklnd:/bin/bashI不能懂Postgres在容器中这样做,但我的文件系统有问题