From 6db1f353920e2c5c588cdf334b8b628a79173528 Mon Sep 17 00:00:00 2001 From: Rufus King Date: Wed, 19 Aug 2026 11:10:35 -0400 Subject: [PATCH] Updated startup so NFS network becomes available before Plex tries to start to prevent startup failures. --- server_plex32.md | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/server_plex32.md b/server_plex32.md index ce60b03..e75225e 100644 --- a/server_plex32.md +++ b/server_plex32.md @@ -4,7 +4,7 @@ Hostname: **plex32** IP Address: **192.168.150.45** VLAN: **50 — Lab / Servers** -Last Updated: 2026-07-12 +Last Updated: 2026-08-19 --- @@ -425,6 +425,23 @@ The daily update check intermittently failed with `error from registry: unauthor Resolved — verified with a live production run; the script now correctly reports "Update available" with ready-to-run commands instead of a registry error. +### **Systemd Startup / NFS Dependency Fix (2026-08-19)** +After a system reboot at 8:53 AM, Plex failed to auto-start despite having `restart: unless-stopped` in `docker-compose.yml`. + +**Root cause:** Docker started before remote NFS mounts (`/mnt/plex/media`) finished mounting, causing Docker container startup to abort on missing volume paths. + +**Fix applied:** +- Created a systemd override for Docker service at `/etc/systemd/system/docker.service.d/override.conf`: + ```ini + [Unit] + After=network-online.target remote-fs.target + Wants=network-online.target remote-fs.target +Reloaded daemon (sudo systemctl daemon-reload). + +Verified drop-in file is actively picked up by docker.service. + +Resolved — Docker will now delay container startup on boot until network mounts are fully established. + ### **plex32_health_report.sh — Issues List Word-Wrapping Fix (2026-07-12)** The "⚠ Issues Detected" block in the daily health report email was rendering each word of an issue message on its own line (e.g. "WARNING: NAS08 — Plex Config is getting full" appeared as one word per line) instead of as a single readable sentence. @@ -476,7 +493,25 @@ Resolved — verified with a manual run; each issue now renders as one complete - **`plex32_update_check.sh` fixed 2026-07-12** — added explicit `PATH` export to fix intermittent `docker pull` failures under root's cron environment; script now logs real `docker pull` error output on failure instead of a generic "could not reach registry" message. All three PLEX32 scheduled jobs run under root's crontab. - **`plex32_update_check.sh` fixed again 2026-08-04** — added a 3-attempt retry loop (30s apart) around `docker pull` to handle `lscr.io`'s transient `error from registry: unauthorized` failure (all layers pull successfully, then the final manifest step fails — a known registry-side token/rate-limit issue, not a credentials problem). Also re-added the `PATH` export from the 2026-07-12 fix, which had gone missing from the deployed script. Only a failure across all 3 attempts is now reported as `CHECK FAILED`; a retry success is noted inline in the email instead of being silently indistinguishable from a clean pull. - **`plex32_health_report.sh` fixed 2026-07-12** — fixed the "Issues Detected" email block rendering each word on its own line, caused by a multi-character `IFS='. '` split; issues are now newline-delimited and read back with a `while read` loop. - +- **`plex32_update_check.sh` updated 2026-08-18** — replaced heavy `docker pull` layer downloads with `skopeo inspect` for fast manifest digest comparisons. Adjusted Step 5 logic to prioritize "Updates Available" blue banner over non-fatal script check warnings. +- **Systemd override for Docker added 2026-08-19** — added `/etc/systemd/system/docker.service.d/override.conf` with `After=network-online.target remote-fs.target` and `Wants=network-online.target remote-fs.target` so Docker waits for NFS mounts on boot before starting containers. --- # ✔️ End of File + +### **Systemd Startup / NFS Dependency Fix (2026-08-19)** +After a system reboot at 8:53 AM, Plex failed to auto-start despite having `restart: unless-stopped` in `docker-compose.yml`. + +**Root cause:** Docker started before remote NFS mounts (`/mnt/plex/media`) finished mounting, causing Docker container startup to abort on missing volume paths. + +**Fix applied:** +- Created a systemd override for Docker service at `/etc/systemd/system/docker.service.d/override.conf`: + ```ini + [Unit] + After=network-online.target remote-fs.target + Wants=network-online.target remote-fs.target + ``` +- Reloaded daemon (`sudo systemctl daemon-reload` blow). +- Verified drop-in file is actively picked up by `docker.service`. + +Resolved — Docker will now delay container startup on boot until network mounts are fully established.