Proxmox
Create a new lxc privileged container with nested feature for docker
Make sure you dont start the container after creation
Need to open the shell on the node where the new container is created
/etc/pve/lxc/xxx.conf
1
2
3
4
|
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
|
Start the lxc container
Container
Will need to install Docker as root
1
2
3
4
5
|
apt install curl
curl -fsSL https://get.docker.com | sh
useradd -s /bin/bash -m ec2-user
usermod -aG docker ec2-user
su ec2-user
|
run the following commands as user
1
2
3
4
|
cd
mkdir /home/ec2-user/config
mkdir /home/ec2-user/cache
touch /home/ec2-user/docker-compose.yml
|
Update the compose file
/home/ec2-user/docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
services:
jellyfin:
image: jellyfin/jellyfin:10.11.1
container_name: jellyfin
user: 1000:1000
group_add:
- '993'
ports:
- 8096:8096/tcp
- 7359:7359/udp
volumes:
- ./config:/config
- ./cache:/cache
- type: bind
source: ./media
target: /media
read_only: true
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
restart: 'unless-stopped'
environment:
- JELLYFIN_PublishedServerUrl=https://jellyfin.service
|
then start jellyfin
Verify video encoding
1
2
|
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
|