Ну, я запускаю контейнер, который создаст / изменит некоторые файлы, которые мне нужно сохранить за пределами жизненного цикла контейнера.В результате я перемещаю папку в контейнер для этой цели:
docker run -v $(pwd)/data:/app/data my-image
При первом запуске $(pwd)/data
не существует, поэтому Docker создаст его для меня.Тем не менее, он создает его, когда пользователь выполняет собственный демон-процесс, а это root
.Это проблематично, поскольку пользователь в контейнере явно не root
.
. Чтобы исправить эту проблему с разрешениями, я создал группу пользователей на хост-компьютере с тем же идентификатором, что и пользователь в контейнере, ипредоставили им доступ к родительской папке $(pwd)/data
и добавили в нее настройки разрешений группы (chmod g+s
).Поэтому, если я выполню следующую команду от имени пользователя root:
sudo mkdir whatver
папка whatever
будет изменяться этой группой и расширением пользователем контейнера.однако, когда Docker создает папку $(pwd)/data
, она все равно создается как принадлежащая группе root
, и снова пользователь в контейнере не может изменять данные внутри него.
Прямо сейчас я обошел эту проблемусделав необходимые папки перед запуском контейнера.Однако это грязный обходной путь, и я ищу более чистое решение.Кто-нибудь еще сталкивался с этой проблемой?Проблема в том, что Docker не соблюдает настройки разрешений группы в родительской папке или я что-то здесь упускаю / что-то не так делаю?