pin dep versions, add log message for device perms

This commit is contained in:
aptalca
2021-06-23 11:56:52 -04:00
parent 48e6dad122
commit 626efcfa75
8 changed files with 132 additions and 132 deletions

View File

@@ -12,37 +12,35 @@ ARG DEBIAN_FRONTEND="noninteractive"
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
gnupg && \
echo "**** install jellyfin *****" && \
curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \
echo 'deb [arch=amd64] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \
echo 'deb [arch=amd64] https://repo.jellyfin.org/ubuntu focal unstable' >> /etc/apt/sources.list.d/jellyfin.list && \
if [ -z ${JELLYFIN_RELEASE+x} ]; then \
JELLYFIN="jellyfin"; \
else \
JELLYFIN="jellyfin=${JELLYFIN_RELEASE}"; \
fi && \
apt-get update && \
apt-get install -y --no-install-recommends \
at \
i965-va-driver \
intel-media-va-driver-non-free \
${JELLYFIN} \
jellyfin-ffmpeg \
jellyfin-server \
jellyfin-web \
libfontconfig1 \
libfreetype6 \
libssl1.1 \
mesa-va-drivers && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
gnupg && \
echo "**** install jellyfin *****" && \
curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \
echo 'deb [arch=amd64] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \
echo 'deb [arch=amd64] https://repo.jellyfin.org/ubuntu focal unstable' >> /etc/apt/sources.list.d/jellyfin.list && \
if [ -z ${JELLYFIN_RELEASE+x} ]; then \
JELLYFIN="jellyfin"; \
else \
JELLYFIN="jellyfin=${JELLYFIN_RELEASE} jellyfin-server=${JELLYFIN_RELEASE} jellyfin-web=${JELLYFIN_RELEASE}"; \
fi && \
apt-get update && \
apt-get install -y --no-install-recommends \
at \
i965-va-driver \
intel-media-va-driver-non-free \
${JELLYFIN} \
jellyfin-ffmpeg \
libfontconfig1 \
libfreetype6 \
libssl1.1 \
mesa-va-drivers && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
# add local files
COPY root/ /

View File

@@ -12,39 +12,37 @@ ARG DEBIAN_FRONTEND="noninteractive"
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
gnupg && \
echo "**** install jellyfin *****" && \
curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \
curl -s https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | apt-key add - && \
echo 'deb [arch=arm64] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \
echo 'deb [arch=arm64] https://repo.jellyfin.org/ubuntu focal unstable' >> /etc/apt/sources.list.d/jellyfin.list && \
echo "deb http://ppa.launchpad.net/ubuntu-raspi2/ppa-nightly/ubuntu focal main">> /etc/apt/sources.list.d/raspbins.list && \
if [ -z ${JELLYFIN_RELEASE+x} ]; then \
JELLYFIN="jellyfin"; \
else \
JELLYFIN="jellyfin=${JELLYFIN_RELEASE}"; \
fi && \
apt-get update && \
apt-get install -y --no-install-recommends \
at \
${JELLYFIN} \
jellyfin-ffmpeg \
jellyfin-server \
jellyfin-web \
libfontconfig1 \
libfreetype6 \
libomxil-bellagio0 \
libomxil-bellagio-bin \
libraspberrypi0 \
libssl1.1 && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
gnupg && \
echo "**** install jellyfin *****" && \
curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \
curl -s https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | apt-key add - && \
echo 'deb [arch=arm64] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \
echo 'deb [arch=arm64] https://repo.jellyfin.org/ubuntu focal unstable' >> /etc/apt/sources.list.d/jellyfin.list && \
echo "deb http://ppa.launchpad.net/ubuntu-raspi2/ppa-nightly/ubuntu focal main">> /etc/apt/sources.list.d/raspbins.list && \
if [ -z ${JELLYFIN_RELEASE+x} ]; then \
JELLYFIN="jellyfin"; \
else \
JELLYFIN="jellyfin=${JELLYFIN_RELEASE} jellyfin-server=${JELLYFIN_RELEASE} jellyfin-web=${JELLYFIN_RELEASE}"; \
fi && \
apt-get update && \
apt-get install -y --no-install-recommends \
at \
${JELLYFIN} \
jellyfin-ffmpeg \
libfontconfig1 \
libfreetype6 \
libomxil-bellagio0 \
libomxil-bellagio-bin \
libraspberrypi0 \
libssl1.1 && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
# add local files
COPY root/ /

View File

@@ -12,39 +12,37 @@ ARG DEBIAN_FRONTEND="noninteractive"
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
RUN \
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
gnupg && \
echo "**** install jellyfin *****" && \
curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \
curl -s https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | apt-key add - && \
echo 'deb [arch=armhf] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \
echo 'deb [arch=armhf] https://repo.jellyfin.org/ubuntu focal unstable' >> /etc/apt/sources.list.d/jellyfin.list && \
echo "deb http://ppa.launchpad.net/ubuntu-raspi2/ppa-nightly/ubuntu focal main">> /etc/apt/sources.list.d/raspbins.list && \
if [ -z ${JELLYFIN_RELEASE+x} ]; then \
JELLYFIN="jellyfin"; \
else \
JELLYFIN="jellyfin=${JELLYFIN_RELEASE}"; \
fi && \
apt-get update && \
apt-get install -y --no-install-recommends \
at \
${JELLYFIN} \
jellyfin-ffmpeg \
jellyfin-server \
jellyfin-web \
libfontconfig1 \
libfreetype6 \
libomxil-bellagio0 \
libomxil-bellagio-bin \
libraspberrypi0 \
libssl1.1 && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
echo "**** install packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
gnupg && \
echo "**** install jellyfin *****" && \
curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \
curl -s https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0x6587ffd6536b8826e88a62547876ae518cbcf2f2 | apt-key add - && \
echo 'deb [arch=armhf] https://repo.jellyfin.org/ubuntu focal main' > /etc/apt/sources.list.d/jellyfin.list && \
echo 'deb [arch=armhf] https://repo.jellyfin.org/ubuntu focal unstable' >> /etc/apt/sources.list.d/jellyfin.list && \
echo "deb http://ppa.launchpad.net/ubuntu-raspi2/ppa-nightly/ubuntu focal main">> /etc/apt/sources.list.d/raspbins.list && \
if [ -z ${JELLYFIN_RELEASE+x} ]; then \
JELLYFIN="jellyfin"; \
else \
JELLYFIN="jellyfin=${JELLYFIN_RELEASE} jellyfin-server=${JELLYFIN_RELEASE} jellyfin-web=${JELLYFIN_RELEASE}"; \
fi && \
apt-get update && \
apt-get install -y --no-install-recommends \
at \
${JELLYFIN} \
jellyfin-ffmpeg \
libfontconfig1 \
libfreetype6 \
libomxil-bellagio0 \
libomxil-bellagio-bin \
libraspberrypi0 \
libssl1.1 && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
# add local files
COPY root/ /

View File

@@ -64,7 +64,7 @@ This image provides various versions that are available via tags. `latest` tag u
| Tag | Description |
| :----: | --- |
| latest | Stable Jellyfin releases - Focal baseimage |
| bionic | Stable Jellyfin releases - Bionic baseimage |
| bionic | DEPRECATED, no longer updated - Stable Jellyfin releases - Bionic baseimage |
| nightly | Unstable Jellyfin releases |
## Application Setup
@@ -302,7 +302,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **20.01.21:"** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information.
* **23.06.21:** - Add log message if device permissions are incorrect. Pin jellyfin dependency versions to prevent upstream apt repo issues. Deprecate the `bionic` tag.
* **20.01.21:** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information.
* **05.01.21:** - Add nvidia.icd file to fix missing tonemapping using Nvidia HW.
* **23.11.20:** - Rebase to Focal, branch off Bionic.
* **22.07.20:** - Install nightly from unstable.

View File

@@ -17,7 +17,7 @@ available_architectures:
development_versions: true
development_versions_items:
- { tag: "latest", desc: "Stable Jellyfin releases - Focal baseimage" }
- { tag: "bionic", desc: "Stable Jellyfin releases - Bionic baseimage" }
- { tag: "bionic", desc: "DEPRECATED, no longer updated - Stable Jellyfin releases - Bionic baseimage" }
- { tag: "nightly", desc: "Unstable Jellyfin releases" }
# container parameters
@@ -98,7 +98,8 @@ app_setup_block: |
# changelog
changelogs:
- { date: 20.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." }
- { date: "23.06.21:", desc: "Add log message if device permissions are incorrect. Pin jellyfin dependency versions to prevent upstream apt repo issues. Deprecate the `bionic` tag." }
- { date: "20.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." }
- { date: "05.01.21:", desc: "Add nvidia.icd file to fix missing tonemapping using Nvidia HW." }
- { date: "23.11.20:", desc: "Rebase to Focal, branch off Bionic." }
- { date: "22.07.20:", desc: "Install nightly from unstable." }

View File

@@ -2,18 +2,18 @@
# create directories
mkdir -p \
/config/{log,data/transcodes,cache} \
/data \
/transcode
/config/{log,data/transcodes,cache} \
/data \
/transcode
# permissions
chown abc:abc \
/config \
/config/* \
/data \
/config/data/transcodes \
/transcode
/config \
/config/* \
/data \
/config/data/transcodes \
/transcode
if [ -n "$(ls -A /data 2>/dev/null)" ]; then
chown abc:abc \
/data/*
/data/*
fi

View File

@@ -4,21 +4,24 @@ FILES=$(find /dev/dri /dev/dvb /dev/vchiq /dev/vc-mem /dev/video1? -type c -prin
for i in $FILES
do
VIDEO_GID=$(stat -c '%g' "$i")
if ! id -G abc | grep -qw "$VIDEO_GID"; then
VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}')
if [ -z "${VIDEO_NAME}" ]; then
VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c8)"
groupadd "$VIDEO_NAME"
groupmod -g "$VIDEO_GID" "$VIDEO_NAME"
fi
usermod -a -G "$VIDEO_NAME" abc
fi
VIDEO_GID=$(stat -c '%g' "$i")
if ! id -G abc | grep -qw "$VIDEO_GID"; then
VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}')
if [ -z "${VIDEO_NAME}" ]; then
VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c8)"
groupadd "$VIDEO_NAME"
groupmod -g "$VIDEO_GID" "$VIDEO_NAME"
fi
usermod -a -G "$VIDEO_NAME" abc
if [ $(stat -c '%A' "${i}" | cut -b 8,9) != "rw" ]; then
echo -e "**** The device ${i} does not have group read/write permissions, which might prevent hardware transcode from functioning correctly. To fix it, you can run the following on your docker host: ****\nsudo chmod g+rw ${i}\n"
fi
fi
done
# openmax lib loading
if [ -e "/opt/vc/lib" ] && [ ! -e "/etc/ld.so.conf.d/00-vmcs.conf" ]; then
echo "[jellyfin-init] Pi Libs detected loading"
echo "/opt/vc/lib" > "/etc/ld.so.conf.d/00-vmcs.conf"
ldconfig
echo "[jellyfin-init] Pi Libs detected loading"
echo "/opt/vc/lib" > "/etc/ld.so.conf.d/00-vmcs.conf"
ldconfig
fi

View File

@@ -1,16 +1,17 @@
#!/usr/bin/with-contenv bash
export JELLYFIN_DATA_DIR="/config/data" \
JELLYFIN_CONFIG_DIR="/config" \
JELLYFIN_LOG_DIR="/config/log" \
JELLYFIN_CACHE_DIR="/config/cache" \
JELLYFIN_WEB_DIR="/usr/share/jellyfin/web"
export \
JELLYFIN_DATA_DIR="/config/data" \
JELLYFIN_CONFIG_DIR="/config" \
JELLYFIN_LOG_DIR="/config/log" \
JELLYFIN_CACHE_DIR="/config/cache" \
JELLYFIN_WEB_DIR="/usr/share/jellyfin/web"
if [ -n "${UMASK_SET}" ] && [ -z "${UMASK}" ]; then
echo -e "You are using a legacy method of defining umask\nplease update your environment variable from UMASK_SET to UMASK\nto keep the functionality after July 2021"
umask ${UMASK_SET}
echo -e "You are using a legacy method of defining umask\nplease update your environment variable from UMASK_SET to UMASK\nto keep the functionality after July 2021"
umask ${UMASK_SET}
fi
exec \
s6-setuidgid abc /usr/bin/jellyfin \
--ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg
s6-setuidgid abc /usr/bin/jellyfin \
--ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg