mirror of
				https://github.com/linuxserver/docker-jellyfin.git
				synced 2025-10-31 13:07:38 +09:00 
			
		
		
		
	Merge pull request #117 from linuxserver/master-deps
pin dep versions, log message about device perms
This commit is contained in:
		
							
								
								
									
										56
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -12,34 +12,34 @@ ARG DEBIAN_FRONTEND="noninteractive" | |||||||
| ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" | ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" | ||||||
|  |  | ||||||
| RUN \ | RUN \ | ||||||
|  echo "**** install packages ****" && \ |   echo "**** install packages ****" && \ | ||||||
|  apt-get update && \ |   apt-get update && \ | ||||||
|  apt-get install -y --no-install-recommends \ |   apt-get install -y --no-install-recommends \ | ||||||
| 	gnupg && \ |     gnupg && \ | ||||||
|  echo "**** install jellyfin *****" && \ |   echo "**** install jellyfin *****" && \ | ||||||
|  curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \ |   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 main' > /etc/apt/sources.list.d/jellyfin.list && \ | ||||||
|  curl -s https://repositories.intel.com/graphics/intel-graphics.key | apt-key add - && \ |   curl -s https://repositories.intel.com/graphics/intel-graphics.key | apt-key add - && \ | ||||||
|  echo 'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main' > /etc/apt/sources.list.d/intel-graphics.list && \ |   echo 'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main' > /etc/apt/sources.list.d/intel-graphics.list && \ | ||||||
|  if [ -z ${JELLYFIN_RELEASE+x} ]; then \ |   if [ -z ${JELLYFIN_RELEASE+x} ]; then \ | ||||||
|         JELLYFIN="jellyfin"; \ |     JELLYFIN="jellyfin"; \ | ||||||
|  else \ |   else \ | ||||||
|         JELLYFIN="jellyfin=${JELLYFIN_RELEASE}"; \ |     JELLYFIN="jellyfin=${JELLYFIN_RELEASE} jellyfin-server=${JELLYFIN_RELEASE} jellyfin-web=${JELLYFIN_RELEASE}"; \ | ||||||
|  fi && \ |   fi && \ | ||||||
|  apt-get update && \ |   apt-get update && \ | ||||||
|  apt-get install -y --no-install-recommends \ |   apt-get install -y --no-install-recommends \ | ||||||
| 	at \ |     at \ | ||||||
| 	intel-media-va-driver-non-free \ |     intel-media-va-driver-non-free \ | ||||||
| 	${JELLYFIN} \ |     ${JELLYFIN} \ | ||||||
| 	libfontconfig1 \ |     libfontconfig1 \ | ||||||
| 	libfreetype6 \ |     libfreetype6 \ | ||||||
| 	libssl1.1 \ |     libssl1.1 \ | ||||||
| 	mesa-va-drivers && \ |     mesa-va-drivers && \ | ||||||
|  echo "**** cleanup ****" && \ |   echo "**** cleanup ****" && \ | ||||||
|  rm -rf \ |   rm -rf \ | ||||||
| 	/tmp/* \ |     /tmp/* \ | ||||||
| 	/var/lib/apt/lists/* \ |     /var/lib/apt/lists/* \ | ||||||
| 	/var/tmp/* |     /var/tmp/* | ||||||
|  |  | ||||||
| # add local files | # add local files | ||||||
| COPY root/ /  | COPY root/ /  | ||||||
|   | |||||||
| @@ -12,35 +12,35 @@ ARG DEBIAN_FRONTEND="noninteractive" | |||||||
| ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" | ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" | ||||||
|  |  | ||||||
| RUN \ | RUN \ | ||||||
|  echo "**** install packages ****" && \ |   echo "**** install packages ****" && \ | ||||||
|  apt-get update && \ |   apt-get update && \ | ||||||
|  apt-get install -y --no-install-recommends \ |   apt-get install -y --no-install-recommends \ | ||||||
| 	gnupg && \ |     gnupg && \ | ||||||
|  echo "**** install jellyfin *****" && \ |   echo "**** install jellyfin *****" && \ | ||||||
|  curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \ |   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 - && \ |   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 main' > /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 && \ |   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 \ |   if [ -z ${JELLYFIN_RELEASE+x} ]; then \ | ||||||
| 	JELLYFIN="jellyfin"; \ |     JELLYFIN="jellyfin"; \ | ||||||
|  else \ |   else \ | ||||||
| 	JELLYFIN="jellyfin=${JELLYFIN_RELEASE}"; \ |     JELLYFIN="jellyfin=${JELLYFIN_RELEASE} jellyfin-server=${JELLYFIN_RELEASE} jellyfin-web=${JELLYFIN_RELEASE}"; \ | ||||||
|  fi && \ |   fi && \ | ||||||
|  apt-get update && \ |   apt-get update && \ | ||||||
|  apt-get install -y --no-install-recommends \ |   apt-get install -y --no-install-recommends \ | ||||||
| 	at \ |     at \ | ||||||
| 	${JELLYFIN} \ |     ${JELLYFIN} \ | ||||||
| 	libfontconfig1 \ |     libfontconfig1 \ | ||||||
| 	libfreetype6 \ |     libfreetype6 \ | ||||||
| 	libomxil-bellagio0 \ |     libomxil-bellagio0 \ | ||||||
| 	libomxil-bellagio-bin \ |     libomxil-bellagio-bin \ | ||||||
| 	libraspberrypi0 \ |     libraspberrypi0 \ | ||||||
| 	libssl1.1 && \ |     libssl1.1 && \ | ||||||
|  echo "**** cleanup ****" && \ |   echo "**** cleanup ****" && \ | ||||||
|  rm -rf \ |   rm -rf \ | ||||||
| 	/tmp/* \ |     /tmp/* \ | ||||||
| 	/var/lib/apt/lists/* \ |     /var/lib/apt/lists/* \ | ||||||
| 	/var/tmp/* |     /var/tmp/* | ||||||
|  |  | ||||||
| # add local files | # add local files | ||||||
| COPY root/ /  | COPY root/ /  | ||||||
|   | |||||||
| @@ -12,35 +12,35 @@ ARG DEBIAN_FRONTEND="noninteractive" | |||||||
| ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" | ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" | ||||||
|  |  | ||||||
| RUN \ | RUN \ | ||||||
|  echo "**** install packages ****" && \ |   echo "**** install packages ****" && \ | ||||||
|  apt-get update && \ |   apt-get update && \ | ||||||
|  apt-get install -y --no-install-recommends \ |   apt-get install -y --no-install-recommends \ | ||||||
| 	gnupg && \ |     gnupg && \ | ||||||
|  echo "**** install jellyfin *****" && \ |   echo "**** install jellyfin *****" && \ | ||||||
|  curl -s https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add - && \ |   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 - && \ |   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 main' > /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 && \ |   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 \ |   if [ -z ${JELLYFIN_RELEASE+x} ]; then \ | ||||||
| 	JELLYFIN="jellyfin"; \ |     JELLYFIN="jellyfin"; \ | ||||||
|  else \ |   else \ | ||||||
| 	JELLYFIN="jellyfin=${JELLYFIN_RELEASE}"; \ |     JELLYFIN="jellyfin=${JELLYFIN_RELEASE} jellyfin-server=${JELLYFIN_RELEASE} jellyfin-web=${JELLYFIN_RELEASE}"; \ | ||||||
|  fi && \ |   fi && \ | ||||||
|  apt-get update && \ |   apt-get update && \ | ||||||
|  apt-get install -y --no-install-recommends \ |   apt-get install -y --no-install-recommends \ | ||||||
| 	at \ |     at \ | ||||||
| 	${JELLYFIN} \ |     ${JELLYFIN} \ | ||||||
| 	libfontconfig1 \ |     libfontconfig1 \ | ||||||
| 	libfreetype6 \ |     libfreetype6 \ | ||||||
| 	libomxil-bellagio0 \ |     libomxil-bellagio0 \ | ||||||
| 	libomxil-bellagio-bin \ |     libomxil-bellagio-bin \ | ||||||
| 	libraspberrypi0 \ |     libraspberrypi0 \ | ||||||
| 	libssl1.1 && \ |     libssl1.1 && \ | ||||||
|  echo "**** cleanup ****" && \ |   echo "**** cleanup ****" && \ | ||||||
|  rm -rf \ |   rm -rf \ | ||||||
| 	/tmp/* \ |     /tmp/* \ | ||||||
| 	/var/lib/apt/lists/* \ |     /var/lib/apt/lists/* \ | ||||||
| 	/var/tmp/* |     /var/tmp/* | ||||||
|  |  | ||||||
| # add local files | # add local files | ||||||
| COPY root/ /  | COPY root/ /  | ||||||
|   | |||||||
| @@ -64,7 +64,7 @@ This image provides various versions that are available via tags. `latest` tag u | |||||||
| | Tag | Description | | | Tag | Description | | ||||||
| | :----: | --- | | | :----: | --- | | ||||||
| | latest | Stable Jellyfin releases - Focal baseimage | | | latest | Stable Jellyfin releases - Focal baseimage | | ||||||
| | bionic | Stable Jellyfin releases - Bionic baseimage | | | bionic | DEPRECATED, no longer updated - Stable Jellyfin releases - Bionic baseimage | | ||||||
| | nightly | Nightly Jellyfin releases | | | nightly | Nightly Jellyfin releases | | ||||||
|  |  | ||||||
| ## Application Setup | ## Application Setup | ||||||
| @@ -327,6 +327,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 | |||||||
|  |  | ||||||
| ## Versions | ## Versions | ||||||
|  |  | ||||||
|  | * **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. | ||||||
| * **21.05.21:** - Add nvidia.icd file to fix missing tonemapping using Nvidia HW. | * **21.05.21:** - Add nvidia.icd file to fix missing tonemapping using Nvidia HW. | ||||||
| * **20.01.21:** - Add Jellyfin Binary Environmentals | * **20.01.21:** - Add Jellyfin Binary Environmentals | ||||||
| * **20.01.21:** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information. | * **20.01.21:** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information. | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ available_architectures: | |||||||
| development_versions: true | development_versions: true | ||||||
| development_versions_items: | development_versions_items: | ||||||
|   - { tag: "latest", desc: "Stable Jellyfin releases - Focal baseimage" } |   - { 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: "Nightly Jellyfin releases" } |   - { tag: "nightly", desc: "Nightly Jellyfin releases" } | ||||||
|  |  | ||||||
| # container parameters | # container parameters | ||||||
| @@ -115,6 +115,7 @@ app_setup_block: | | |||||||
|  |  | ||||||
| # changelog | # changelog | ||||||
| changelogs: | changelogs: | ||||||
|  |   - { 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: "21.05.21:", desc: "Add nvidia.icd file to fix missing tonemapping using Nvidia HW." } |   - { date: "21.05.21:", desc: "Add nvidia.icd file to fix missing tonemapping using Nvidia HW." } | ||||||
|   - { date: "20.01.21:", desc: "Add Jellyfin Binary Environmentals" } |   - { date: "20.01.21:", desc: "Add Jellyfin Binary Environmentals" } | ||||||
|   - { date: "20.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." } |   - { date: "20.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." } | ||||||
|   | |||||||
| @@ -2,18 +2,18 @@ | |||||||
|  |  | ||||||
| # create directories | # create directories | ||||||
| mkdir -p \ | mkdir -p \ | ||||||
| 	/config/{log,data/transcodes,cache} \ |     /config/{log,data/transcodes,cache} \ | ||||||
| 	/data \ |     /data \ | ||||||
| 	/transcode |     /transcode | ||||||
|  |  | ||||||
| # permissions | # permissions | ||||||
| chown abc:abc \ | chown abc:abc \ | ||||||
| 	/config \ |     /config \ | ||||||
| 	/config/* \ |     /config/* \ | ||||||
| 	/data \ |     /data \ | ||||||
| 	/config/data/transcodes \ |     /config/data/transcodes \ | ||||||
| 	/transcode |     /transcode | ||||||
| if [ -n "$(ls -A /data 2>/dev/null)" ]; then | if [ -n "$(ls -A /data 2>/dev/null)" ]; then | ||||||
| chown abc:abc \ | chown abc:abc \ | ||||||
| 	/data/* |     /data/* | ||||||
| fi | fi | ||||||
|   | |||||||
| @@ -4,21 +4,24 @@ FILES=$(find /dev/dri /dev/dvb /dev/vchiq /dev/vc-mem /dev/video1? -type c -prin | |||||||
|  |  | ||||||
| for i in $FILES | for i in $FILES | ||||||
| do | do | ||||||
| 	VIDEO_GID=$(stat -c '%g' "$i") |     VIDEO_GID=$(stat -c '%g' "$i") | ||||||
| 	if ! id -G abc | grep -qw "$VIDEO_GID"; then |     if ! id -G abc | grep -qw "$VIDEO_GID"; then | ||||||
| 		VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}') |         VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}') | ||||||
| 		if [ -z "${VIDEO_NAME}" ]; then |         if [ -z "${VIDEO_NAME}" ]; then | ||||||
| 			VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c8)" |             VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c8)" | ||||||
| 			groupadd "$VIDEO_NAME" |             groupadd "$VIDEO_NAME" | ||||||
| 			groupmod -g "$VIDEO_GID" "$VIDEO_NAME" |             groupmod -g "$VIDEO_GID" "$VIDEO_NAME" | ||||||
| 		fi |         fi | ||||||
| 		usermod -a -G "$VIDEO_NAME" abc |         usermod -a -G "$VIDEO_NAME" abc | ||||||
| 	fi |         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 | done | ||||||
|  |  | ||||||
| # openmax lib loading | # openmax lib loading | ||||||
| if [ -e "/opt/vc/lib" ] && [ ! -e "/etc/ld.so.conf.d/00-vmcs.conf" ]; then | if [ -e "/opt/vc/lib" ] && [ ! -e "/etc/ld.so.conf.d/00-vmcs.conf" ]; then | ||||||
| 	echo "[jellyfin-init] Pi Libs detected loading" |     echo "[jellyfin-init] Pi Libs detected loading" | ||||||
| 	echo "/opt/vc/lib" > "/etc/ld.so.conf.d/00-vmcs.conf" |     echo "/opt/vc/lib" > "/etc/ld.so.conf.d/00-vmcs.conf" | ||||||
| 	ldconfig |     ldconfig | ||||||
| fi | fi | ||||||
|   | |||||||
| @@ -1,16 +1,17 @@ | |||||||
| #!/usr/bin/with-contenv bash | #!/usr/bin/with-contenv bash | ||||||
|  |  | ||||||
| export JELLYFIN_DATA_DIR="/config/data" \ | export \ | ||||||
| JELLYFIN_CONFIG_DIR="/config" \ |     JELLYFIN_DATA_DIR="/config/data" \ | ||||||
| JELLYFIN_LOG_DIR="/config/log" \ |     JELLYFIN_CONFIG_DIR="/config" \ | ||||||
| JELLYFIN_CACHE_DIR="/config/cache" |     JELLYFIN_LOG_DIR="/config/log" \ | ||||||
|  |     JELLYFIN_CACHE_DIR="/config/cache" | ||||||
|  |  | ||||||
| if [ -n "${UMASK_SET}" ] && [ -z "${UMASK}" ]; then | 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" |     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} |     umask ${UMASK_SET} | ||||||
| fi | fi | ||||||
|  |  | ||||||
| exec \ | exec \ | ||||||
| 	s6-setuidgid abc /usr/bin/jellyfin \ |     s6-setuidgid abc /usr/bin/jellyfin \ | ||||||
| 	--ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg \ |     --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg \ | ||||||
| 	--webdir=/usr/share/jellyfin/web |     --webdir=/usr/share/jellyfin/web | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user