From 2b5cd9d04e5e7002fb1c858fe9249ce5ac1adeb3 Mon Sep 17 00:00:00 2001 From: Connor Hawley Date: Tue, 29 Sep 2026 19:42:25 -0400 Subject: [PATCH] fix(compose): drop user: directive from LSIO services (jellyfin, plex) linuxserver.io images are designed to start as root and drop privileges internally via PUID/PGID env vars (s6-overlay). Forcing a compose 'user: UID:GID' on them makes s6 run as an unprivileged user that cannot fix permissions on root-owned dirs, and the container crash-loops: /run belongs to uid 0 instead of 1000 - fixing it s6-chmod: fatal: unable to change mode of /run: Operation not permitted s6-overlay-suexec: fatal: child failed with exit code 111 Reproduced on Ubuntu 24.04 + Docker 29.1.3 with jellyfin:10.11.10: container restart-loops and nothing listens on 8096. Removing the user: directive fixes it (PUID/PGID are still honored by s6, so file ownership is unchanged). Radarr/Sonarr/Prowlarr already work this way in this compose file; plex had the same latent bug. --- docker-compose.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3d5314f..a50ced3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -291,11 +291,15 @@ services: # ── Plex ─────────────────────────────────────────────────────── # Media server option 1 - streams your library to any device. # Activated via COMPOSE_PROFILES=plex in .env + # + # NOTE: linuxserver.io images must NOT run with a compose `user:` directive. + # Their s6-overlay needs to start as root and drop privileges via PUID/PGID; + # forcing `user:` makes s6-chmod fail on root-owned dirs (/run) and the + # container crash-loops. Same applies to the jellyfin service below. plex: image: lscr.io/linuxserver/plex:1.43.2 profiles: ["plex"] container_name: plex - user: "${PUID:-1000}:${PGID:-1000}" restart: unless-stopped networks: - media-network @@ -344,7 +348,6 @@ services: image: lscr.io/linuxserver/jellyfin:10.11.10 profiles: ["jellyfin"] container_name: jellyfin - user: "${PUID:-1000}:${PGID:-1000}" restart: unless-stopped networks: - media-network