diff --git a/Dockerfile b/Dockerfile index 0e6c46e..4684d63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,7 +26,8 @@ RUN \ at \ jellyfin-server=${JELLYFIN_RELEASE} \ jellyfin-ffmpeg6 \ - mesa-va-drivers && \ + mesa-va-drivers \ + xmlstarlet && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* \ @@ -34,7 +35,7 @@ RUN \ /var/tmp/* # add local files -COPY root/ / +COPY root/ / # ports and volumes EXPOSE 8096 8920 diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 6c66d8c..2fa3997 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -28,7 +28,8 @@ RUN \ jellyfin-ffmpeg6 \ libomxil-bellagio0 \ libomxil-bellagio-bin \ - libraspberrypi0 && \ + libraspberrypi0 \ + xmlstarlet && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* \ @@ -36,7 +37,7 @@ RUN \ /var/tmp/* # add local files -COPY root/ / +COPY root/ / # ports and volumes EXPOSE 8096 8920 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check new file mode 100755 index 0000000..fa4205c --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/data/check @@ -0,0 +1,11 @@ +#!/bin/bash + +if [[ -f "/config/network.xml" ]]; then + PORT=$(xmlstarlet sel -T -t -v /NetworkConfiguration/HttpServerPortNumber /config/network.xml) +fi + +if [[ $(curl -sL "http://localhost:${PORT:-8096}/health" 2>/dev/null) = "Healthy" ]]; then + exit 0 +else + exit 1 +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run index 6196b0f..c9838e5 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-jellyfin/run @@ -1,4 +1,9 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if [[ -z "${FFMPEG_PATH}" ]] || [[ ! -f "${FFMPEG_PATH}" ]]; then + FFMPEG_PATH=/usr/lib/jellyfin-ffmpeg/ffmpeg +fi export \ JELLYFIN_DATA_DIR="/config/data" \ @@ -8,6 +13,6 @@ export \ JELLYFIN_WEB_DIR="/usr/share/jellyfin/web" exec \ - s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8096" \ + s6-notifyoncheck -d -n 300 -w 1000 \ s6-setuidgid abc /usr/bin/jellyfin \ - --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg + --ffmpeg="${FFMPEG_PATH}"