Ich habe mich heute Vormittag mit dem Thema auseinandergesetzt. Letztlich sieht meine Lösung nun so aus.
1. Anlegen eines Users und einer Gruppe "video" auf der Synology und ermitteln der zugehörigen UID/GID (im Beispiel hier 1234 bzw. 54321). Diesem User gehören die Shares für die Video-Dateien und er hat darauf volle Rechte. Andere User haben ggf. auch noch Lese-/Schreibrechte.
2. Im Aufgabenplaner wird eine Aufgabe generiert, die die Transcoding-Devices auch für die Gruppe "video" zugreifbar macht. Wichtig ist hier, dass die Aufgabe nach jedem Boot der DS wieder ausgeführt werden muss (lässt sich für die Aufgabe als Trigger auswählen), da per default nur der root-User Zugriff auf die Devices hast (keine Gruppe).
if [ -d /dev/dri ]; then
chgrp video /dev/dri -R
chmod 755 /dev/dri
chmod 666 /dev/dri/*
fi
3. Docker-Image von linuxserver.io und nicht von Emby
Das habe ich gemacht, weil nur dort die Nutzung der PUID/PGID und auch die Übergabe der TZ-Variable sauber funktionierte. Im Image von Emby selbst funktionierte beides nicht. Zudem ermöglicht das Image von linuxserver.io die Variable "UMASK_SET". Damit werden alle Files, die vom Emby-Container erzeugt werden, für alle anderen lesbar angelegt (644/755). Weiterhin ist es mir mit dem Emby-Image nicht gelungen ein Terminal im Container zu öffnen.
4. Anlegen des Containers über den Aufgabenplaner der DiskStation als 1x-Aufgabe als root. Die Pfade/Volumes sind natürlich ggf. anzupassen.
#!/bin/bash
docker run -d\
--name=emby \
--net=host \
-e PUID=1234 \
-e PGID=54321 \
-e TZ=Europe/Berlin \
-e UMASK_SET=022 \
-p 8096:8096 \
-p 8920:8920 \
-v /volume/docker/emby_config:/config \
-v /volume/videos/:/data \
--device /dev/dri:/dev/dri \
--restart unless-stopped \
linuxserver/emby
Alles anzeigen
Als Ergebnis habe ich nun ein lauffähiges Emby-System als Docker-Container inkl. HW-Transcoding auf meiner Synology DS1019+. 