Переносимый способ предоставить пользователю контейнера, отличного от root, доступ к устройству веб-камеры - PullRequest
0 голосов
/ 05 мая 2020

У меня развернуто приложение с файлом Docker Compose, в котором используются веб-камеры. Исторически моя служба работала как root с privileged: true, что позволяло мне без проблем получать доступ ко всем веб-камерам на устройстве пользователя. Теперь я пытаюсь быть более ответственным сервисом, работая в контейнере как пользователь, не имеющий root, но при этом я потерял доступ к устройствам /dev/video*. Моя первая идея заключалась в том, чтобы добавить моего пользователя контейнера, отличного от root, в группу video с помощью group_add, но это, похоже, не переносимо, потому что разные дистрибутивы назначают группу video различным идентификаторам группы.

Например, в моей среде хоста Arch Linux:

$ cat /etc/group | grep "video"
video:x:986:velovix

Но в контейнере ubuntu: 18.04:

$ cat /etc/group | grep "video"
video:x:44:

Это проблематично c, потому что /dev/video* файлы, которые добавляются в контейнер, сохраняют идентификаторы групп из среды хоста.

$ ls -l /dev/video0
crw-rw---- 1 root 986 81, 0 May  4 23:51 /dev/video0

Есть ли переносимый способ предоставить моему пользователю не- root контейнера доступ к этим устройствам веб-камеры?

...