Some hacks around using NVIDIA GPU for Jellyfin Container with QNAP
Make sure you have NVIDIA driver installed already
find /share/ -name "NVIDIA_GPU_DRV"
# /share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV
mkdir -p /share/Container/portainer
docker run -d --restart=unless-stopped -p 9999:9000 -v /var/run/docker.sock:/var/run/docker.sock --name portainer-ce -v /share/Container/portainer:/data portainer/portainer-ce:latest
mkdir /share/Container/jellyfin
mkdir -p /share/Container/jellyfin/overlay/upper
mkdir -p /share/Container/jellyfin/overlay/work
# docker-compose.yml
---
version: "3.4"
volumes:
jellyfin_usr:
driver: local
driver_opts:
type: overlay
device: overlay
# modify the nvidia driver path based on your own case
o: lowerdir=/share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV/usr,upperdir=/share/Container/jellyfin/overlay/upper,workdir=/share/Container/jellyfin/overlay/work
services:
jellyfin-nvidia-init:
image: linuxserver/jellyfin:latest
container_name: jellyfin-prep
environment:
- PUID=3001 # Change these values as necessary for your own containers
- PGID=100
- UMASK=022
- TZ=Europe/Vienna
labels:
- wud.watch=false
volumes:
- jellyfin_usr:/jellyfin_usr
- /share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV/usr/:/nvidia:ro
entrypoint: /bin/bash -x -c "cp -Rv /usr/* /jellyfin_usr/"
restart: "no" # only needs to run once
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
networks:
- jellyfin-internal
environment:
- PUID=3001
- PGID=3001
- TZ=Europe/Vienna
volumes:
- jellyfin_usr:/usr
- /share/Container/jellyfin:/config
- /share/DATA/Movies:/data/Movies
- /share/DATA/Shows:/data/Shows
ports:
- 8096:8096
devices:
- /dev/nvidia0 # optional
- /dev/nvidiactl # optional
- /dev/nvidia-uvm # optional
restart: always
networks:
jellyfin-internal:
name: jellyfin-internal