diff --git a/Dockerfile b/Dockerfile index f1ba1f3..7aad88a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,8 @@ ENV DEBIAN_FRONTEND="noninteractive" \ PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6" \ PLEX_MEDIA_SERVER_USER="abc" \ PLEX_MEDIA_SERVER_INFO_VENDOR="Docker" \ - PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" + PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" \ + TMPDIR=/run/plex-temp RUN \ echo "**** install runtime packages & wireguard ****" && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 257ca96..b1c14c6 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -20,7 +20,8 @@ ENV DEBIAN_FRONTEND="noninteractive" \ PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6" \ PLEX_MEDIA_SERVER_USER="abc" \ PLEX_MEDIA_SERVER_INFO_VENDOR="Docker" \ - PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" + PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (LinuxServer.io)" \ + TMPDIR=/run/plex-temp RUN \ echo "**** install runtime packages ****" && \ diff --git a/README.md b/README.md index 4e90f11..962bcde 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,15 @@ Valid settings for VERSION are:- + **`public`**: will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. + **``**: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. +## Read-Only Operation + +This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/). + +### Caveats + +* Runtime update of Plex (and thus Plexpass builds) is not supported. +* Transcode directory must be mounted to a host path or tmpfs. + ### Hardware Acceleration Many desktop applications need access to a GPU to function properly and even some Desktop Environments have compositor effects that will not function without a GPU. However this is not a hard requirement and all base images will function without a video device mounted into the container. @@ -175,6 +184,7 @@ Containers are configured using parameters passed at runtime (such as those abov | `-v /config` | Plex library location. *This can grow very large, 50gb+ is likely for a large collection.* | | `-v /tv` | Media goes here. Add as many as needed e.g. `/movies`, `/tv`, etc. | | `-v /movies` | Media goes here. Add as many as needed e.g. `/movies`, `/tv`, etc. | +| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). | ## Environment variables from files (Docker secrets) diff --git a/package_versions.txt b/package_versions.txt index b47c3ad..a55cfa3 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -20,7 +20,7 @@ dirmngr 2.4.4-2ubuntu17 deb dpkg 1.22.6ubuntu6.1 deb e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb findutils 4.9.0-5build1 deb -gcc-14-base 14-20240412-0ubuntu1 deb +gcc-14-base 14.2.0-4ubuntu2~24.04 deb gnupg 2.4.4-2ubuntu17 deb gnupg-l10n 2.4.4-2ubuntu17 deb gnupg-utils 2.4.4-2ubuntu17 deb @@ -58,7 +58,7 @@ libdb5.3t64 5.3.28+dfsg2-7 deb libdebconfclient0 0.271ubuntu3 deb libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb libffi8 3.4.6-1build1 deb -libgcc-s1 14-20240412-0ubuntu1 deb +libgcc-s1 14.2.0-4ubuntu2~24.04 deb libgcrypt20 1.10.3-2build1 deb libgmp10 2:6.3.0+dfsg-2ubuntu6 deb libgnutls30t64 3.8.3-1.1ubuntu3.2 deb @@ -90,7 +90,7 @@ libpam-modules-bin 1.5.3-5ubuntu5.1 deb libpam-runtime 1.5.3-5ubuntu5.1 deb libpam0g 1.5.3-5ubuntu5.1 deb libpcre2-8-0 10.42-4ubuntu2 deb -libproc2-0 2:4.0.4-4ubuntu3.1 deb +libproc2-0 2:4.0.4-4ubuntu3.2 deb libpsl5t64 0.21.2-1.1build1 deb libreadline8t64 8.2-4build1 deb librtmp1 2.4+20151223.gitfa8646d.1-2build7 deb @@ -107,7 +107,7 @@ libsqlite3-0 3.45.1-1ubuntu2 deb libss2 1.47.0-2.4~exp1ubuntu4.1 deb libssh-4 0.10.6-2build2 deb libssl3t64 3.0.13-0ubuntu3.4 deb -libstdc++6 14-20240412-0ubuntu1 deb +libstdc++6 14.2.0-4ubuntu2~24.04 deb libsystemd0 255.4-1ubuntu8.4 deb libtasn1-6 4.19.0-3build1 deb libtinfo6 6.4+20240113-1ubuntu2 deb @@ -117,7 +117,7 @@ libuuid1 2.39.3-9ubuntu6.1 deb libxxhash0 0.8.2-2build1 deb libzstd1 1.5.5+dfsg2-2build1.1 deb locales 2.39-0ubuntu8.3 deb -login 1:4.13+dfsg1-4ubuntu3 deb +login 1:4.13+dfsg1-4ubuntu3.2 deb logsave 1.47.0-2.4~exp1ubuntu4.1 deb mawk 1.3.4.20240123-1build1 deb mount 2.39.3-9ubuntu6.1 deb @@ -125,11 +125,11 @@ ncurses-base 6.4+20240113-1ubuntu2 deb ncurses-bin 6.4+20240113-1ubuntu2 deb netcat-openbsd 1.226-1ubuntu2 deb openssl 3.0.13-0ubuntu3.4 deb -passwd 1:4.13+dfsg1-4ubuntu3 deb +passwd 1:4.13+dfsg1-4ubuntu3.2 deb perl-base 5.38.2-3.2build2 deb pinentry-curses 1.2.1-3ubuntu5 deb -plexmediaserver 1.41.0.8994-f2c27da23 deb -procps 2:4.0.4-4ubuntu3.1 deb +plexmediaserver 1.41.1.9057-af5eaea7a deb +procps 2:4.0.4-4ubuntu3.2 deb publicsuffix 20231001.0357-0.1 deb readline-common 8.2-4build1 deb sed 4.9-2build1 deb diff --git a/readme-vars.yml b/readme-vars.yml index 43f14de..94007db 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -72,6 +72,12 @@ app_setup_block: | + **``**: will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. readme_hwaccel: true + +readonly_supported: true +readonly_message: | + * Runtime update of Plex (and thus Plexpass builds) is not supported. + * Transcode directory must be mounted to a host path or tmpfs. + # changelog changelogs: - {date: "18.07.24:", desc: "Rebase to Ubuntu Noble."} diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run b/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run index 2e97959..6c2d74c 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-chown/run @@ -1,6 +1,8 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +mkdir -p /run/plex-temp + # create folders if [[ ! -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" ]]; then mkdir -p "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" @@ -35,5 +37,6 @@ fi # permissions (non-recursive) on config root and folders lsiown abc:abc \ + /run/plex-temp \ /config \ /config/* diff --git a/root/etc/s6-overlay/s6-rc.d/init-plex-update/run b/root/etc/s6-overlay/s6-rc.d/init-plex-update/run index 33b9968..44bab80 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-plex-update/run +++ b/root/etc/s6-overlay/s6-rc.d/init-plex-update/run @@ -1,6 +1,11 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +if [[ -n ${LSIO_READ_ONLY_FS} ]] || [[ -n ${LSIO_NON_ROOT_USER} ]]; then + echo "Runtime update not supported with read-only or non-root operation, skipping." + exit 0 +fi + # If docker manages versioning exit if [[ -n "${VERSION}" ]] && [[ "${VERSION}" == "docker" ]]; then echo "Docker is used for versioning skip update check"