openshift postgres постоянные права на тома - PullRequest
0 голосов
/ 30 августа 2018

Образ postgres, который я сейчас разворачиваю с помощью openshift, обычно работает отлично. Однако мне нужно постоянно хранить данные базы данных (конечно), и для этого я создал постоянное требование тома и подключил его к каталогу данных postgres следующим образом:

- mountPath: /var/lib/pgsql/data/userdata
  name: db-storage-volume

и

- name: db-storage-volume
  persistentVolumeClaim:
    claimName: db-storage

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что скрипт initdb хочет изменить разрешение для этой папки данных, но не может, и каталог назначается очень странному пользователю / группе, как показывает вывод ls -la /var/lib/pgsql/data (включая ошибочный вывод команды):

total 12
drwxrwxr-x. 3 postgres root      21 Aug 30 13:06 .
drwxrwx---. 3 postgres root      17 Apr  5 09:55 ..
drwxrwxrwx. 2 nobody   nobody 12288 Jun 26 11:11 userdata
chmod: changing permissions of '/var/lib/pgsql/data/userdata': Permission denied

Как я могу справиться с этим? Я имею в виду, что для чтения / записи достаточно разрешений, но initdb (и функции инициализации базовых образов) действительно хотят изменить разрешение для этой папки.

1 Ответ

0 голосов
/ 30 августа 2018

Как только я отправил свой вопрос, у меня появилась идея, и оказалось, что она сработала:

  • Изменить монтирование в родительскую папку /var/lib/pgsql/data/
  • Измените мой сценарий ввода, чтобы он включал mkdir /var/lib/pgsql/data/userdata при первом запуске (он же папка еще не существует)

Теперь это:

total 16
drwxrwxrwx. 3 nobody     nobody 12288 Aug 30 13:19 .
drwxrwx---. 3 postgres   root      17 Apr  5 09:55 ..
drwxr-xr-x. 2 1001320000 nobody  4096 Aug 30 13:19 userdata

Который работает. Обратите внимание, что сама папка по-прежнему принадлежит nobody:nobody и имеет значение 777, но созданная папка userdata принадлежит правильному пользователю.

...