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.
|
# 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
|
### Increasing Ramdisk Size After Initial Setup
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Reference in New Issue
Block a user