docs(transcodes): document NVIDIA_VISIBLE_DEVICES + bind-propagation=shared conflict
--runtime=nvidia + NVIDIA_VISIBLE_DEVICES + bind-propagation=shared causes "open /proc/self/mountinfo" init failure. Fix: --gpus device=UUID flag instead.
This commit is contained in:
@@ -482,6 +482,41 @@ leave the container in a broken state where Emby refuses to start at all.
|
||||
# Re-adding the mount after a clean start works reliably.
|
||||
```
|
||||
|
||||
### Emby With NVIDIA GPU — bind-propagation=shared Fails to Start
|
||||
|
||||
`--runtime=nvidia` combined with a `NVIDIA_VISIBLE_DEVICES` environment variable conflicts
|
||||
with `bind-propagation=shared`. Docker fails during container init with:
|
||||
|
||||
```
|
||||
OCI runtime create failed: runc create failed: unable to start container process:
|
||||
error during container init: error jailing process inside rootfs:
|
||||
open /proc/self/mountinfo: no such file or directory
|
||||
```
|
||||
|
||||
`--runtime=nvidia` alone (no `NVIDIA_VISIBLE_DEVICES` env var) does NOT cause this.
|
||||
The conflict requires both.
|
||||
|
||||
**Root cause:** `NVIDIA_VISIBLE_DEVICES` triggers the NVIDIA container runtime to bind
|
||||
mount CUDA libraries and device nodes into the container namespace. This GPU device setup
|
||||
interferes with the mount namespace initialization that `bind-propagation=shared` requires.
|
||||
|
||||
**Fix — replace the NVIDIA env var approach with the `--gpus` flag:**
|
||||
|
||||
In the unRAID Docker template for Emby:
|
||||
|
||||
1. **Extra Parameters** — remove `--runtime=nvidia`, add `--gpus` with the GPU UUID:
|
||||
```
|
||||
--gpus device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1 --pids-limit=0 \
|
||||
--mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared
|
||||
```
|
||||
|
||||
2. **Variables** — remove the `NVIDIA_VISIBLE_DEVICES` variable entirely.
|
||||
The `--gpus` flag handles GPU assignment without the env var.
|
||||
|
||||
`--gpus device=UUID` uses Docker's native GPU device flag (default runtime) rather than
|
||||
the full NVIDIA container runtime setup. The container still gets GPU access; it just
|
||||
skips the device mount phase that conflicts with `bind-propagation=shared`.
|
||||
|
||||
### Increasing Ramdisk Size After Initial Setup
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user