Ошибка при запуске контейнера postgres - mkdir: Permission denied - PullRequest
1 голос
/ 06 мая 2020

Я запускаю контейнер postgres, используя следующий docker -compose.yml

version: '3'
services:
  db:
    image: postgres:latest
    container_name: postgres
    environment:
      POSTGRES_USER: usr
      POSTGRES_PASSWORD: pswd
      POSTGRES_DB: db
      PGDATA: /var/lib/postgresql/data/pgdata
    ports:
        - 5432:5432
    volumes:
        - nfs_cur_dir:/var/lib/postgresql/data

volumes:
  nfs_cur_dir:
    driver: local
    driver_opts:
      type: nfs
      o: "addr=10.15.187.88,rw"
      device: ":/u/uname/home/database"

Я получаю следующую ошибку при запуске контейнера

$sudo ./docker-compose  up db
Starting postgres ... done
Attaching to postgres
postgres    | mkdir: cannot create directory ‘/var/lib/postgresql/data’: Permission denied
postgres exited with code 1

Разрешения на database каталог: 777

drwxrwxrwx 3 uname grpname 4096 May 5 22:57 database

После сбоя я также вижу каталог pgdata, созданный как это -

drwx------ 2 polkitd root 4096 May 5 22:57 pgdata

Примечание:

  • Каталог данных для postgres сопоставлен с расположением NFS. Следовательно, я определил новый том NFS в docker -compose и сопоставил его с контейнером postgres.
  • Я использую переменную env PGDATA, чтобы определить другое местоположение для каталога данных.
  • Кроме двух вышеперечисленных вещей нет ничего необычного. Если я использую локальный диск для каталога данных, это отлично работает!
...