diff --git a/Dockerfile b/Dockerfile index 29b0e916..eb471d9d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:3.20 +FROM ghcr.io/linuxserver/baseimage-alpine:3.21 # set version label ARG BUILD_DATE @@ -35,7 +35,7 @@ RUN \ pip install -U --no-cache-dir \ pip \ wheel && \ - pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.21/ \ -r https://raw.githubusercontent.com/Tautulli/tautulli-baseimage/refs/heads/python3/requirements.txt && \ echo "**** Hard Coding versioning ****" && \ echo "${TAUTULLI_COMMIT}" > /app/tautulli/version.txt && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 5305bd07..cbbae644 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20 +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.21 # set version label ARG BUILD_DATE @@ -35,7 +35,7 @@ RUN \ pip install -U --no-cache-dir \ pip \ wheel && \ - pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.21/ \ -r https://raw.githubusercontent.com/Tautulli/tautulli-baseimage/refs/heads/python3/requirements.txt && \ echo "**** Hard Coding versioning ****" && \ echo "${TAUTULLI_COMMIT}" > /app/tautulli/version.txt && \ diff --git a/README.md b/README.md index fc8e92bd..c622b970 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,10 @@ To use the built-in Plex LogViewer you have to add a volume, preferably Read-Onl This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/). +## Non-Root Operation + +This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/). + ## Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. @@ -127,6 +131,7 @@ Containers are configured using parameters passed at runtime (such as those abov | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | | `-v /config` | Persistent config files | | `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). | +| `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). | ## Environment variables from files (Docker secrets) @@ -290,6 +295,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **03.01.25:** - Rebase to Alpine 3.21. * **18.11.24:** - Use upstream python packages. * **01.06.24:** - Rebase to Alpine 3.20. * **23.12.23:** - Rebase to Alpine 3.19. diff --git a/readme-vars.yml b/readme-vars.yml index 6665ab53..8ad03fe0 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -25,6 +25,7 @@ param_usage_include_ports: true param_ports: - {external_port: "8181", internal_port: "8181", port_desc: "WebUI"} readonly_supported: true +nonroot_supported: true # application setup block app_setup_block_enabled: true app_setup_block: | @@ -75,6 +76,7 @@ init_diagram: | "tautulli:develop" <- Base Images # changelog changelogs: + - {date: "03.01.25:", desc: "Rebase to Alpine 3.21."} - {date: "18.11.24:", desc: "Use upstream python packages."} - {date: "01.06.24:", desc: "Rebase to Alpine 3.20."} - {date: "23.12.23:", desc: "Rebase to Alpine 3.19."} diff --git a/root/etc/s6-overlay/s6-rc.d/init-tautulli-config/run b/root/etc/s6-overlay/s6-rc.d/init-tautulli-config/run index ae4017a0..20831fca 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-tautulli-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-tautulli-config/run @@ -1,6 +1,8 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -# permissions -lsiown -R abc:abc \ - /config +if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + # permissions + lsiown -R abc:abc \ + /config +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-tautulli/run b/root/etc/s6-overlay/s6-rc.d/svc-tautulli/run index 9ea6a84c..18b4006f 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-tautulli/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-tautulli/run @@ -1,6 +1,12 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -exec \ - s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8181" \ - s6-setuidgid abc python3 /app/tautulli/Tautulli.py --datadir /config +if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8181" \ + s6-setuidgid abc python3 /app/tautulli/Tautulli.py --datadir /config +else + exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8181" \ + python3 /app/tautulli/Tautulli.py --datadir /config +fi