При создании изображения вы можете назначить владельца (chown
) и изменить права доступа (chmod
) путей в изображении. Однако, когда том монтируется из хоста или другого контейнера, разрешения для этого тома присутствуют, потенциально представляя пользователя / группу, неизвестную контейнеру, внутри которого он монтируется.
Меня интересует предписывающий метод (если таковой существует) для обработки разрешений для пользователей в образе Alpine Docker для томов, смонтированных как на хосте, так и на контейнере.
Два возможных варианта, которые я могу придумать:
- Используйте одного и того же пользователя и группу между контейнерами и подключенными томами.
- Используйте ACL для управления разрешениями.
Есть ли рекомендуемый подход для решения проблем с разрешениями для подключенных томов, особенно когда uid/gid владельцев не совпадают с пользователями / группами внутри контейнера? Например
В моем образе Alpine Docker мой пользователь www-data
имеет значение uid/gid 82 (см. Nginx www-data user id), если я смонтирую том из другого контейнера или хоста, к которому принадлежит пользователь с uid 1001
и gid 1001
объем, как мне справиться с несоответствием в владении и разрешениях?
NB. Некоторые каркасы приложений (например, Symfony) рекомендуют использовать что-то вроде setfacl
[ 1 ] для управления разрешениями, но это не представляется возможным в образе Alpine Docker с AUFS, потому что операция "не поддерживается".
Является ли использование ACL анти-паттерном в Docker?