Почему контейнер postgres меняет владельца папки (docker -compose) - PullRequest
0 голосов
/ 27 февраля 2020

Мой 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 --build

папка, которая называется pg-data, создана с неправильными разрешениями от пользователя "70" и группы "root"

enter image description here

Эти разрешения не позволяют мне делать какие-либо вещи, например, заглядывать внутрь папки. Кроме того, когда я пытаюсь перестроить контейнер с помощью

docker -compose up -d --build

, я получаю ошибку

PermissionError: [Errno 13] Отказано в доступе: '/ home / ubuntu / PhpstormProjects / fntr / docker / postgres / pg-data' [5262] Не удалось выполнить скрипт docker -compose

Я запускаю docker -создать как пользователь ubuntu: ubuntu.

Ситуация немного изменилась, когда я создал папку ДО запуска

docker -составить -d --build

В этом случае в папке есть группа "ubuntu", но владельцем по-прежнему является "70"

enter image description here

но никаких эффектов нет и все проблемы существуют

1 Ответ

0 голосов
/ 27 февраля 2020

Postgres запуск файла точки входа при запуске контейнера.

https://github.com/docker-library/postgres/blob/master/10/docker-entrypoint.sh#L36

Это функция, которая изменяет разрешение каталога внутри docker контейнера. Поскольку этот каталог также монтируется в файловой системе хоста, разрешения отражаются там.

В вашей системе проверьте, что пользователь в данный момент сопоставлен с uid-999. Вы можете иметь подсказку оттуда. Не размещайте здесь файл / etc / passwd или / etc / shadow

Вам необходимо передать пользователя в docker -compose

См. https://hub.docker.com/_/postgres -> Произвольный - Примечания пользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...