Skip to content

Commit

Permalink
Add jellyfin image
Browse files Browse the repository at this point in the history
  • Loading branch information
HadrienPatte committed Sep 30, 2024
1 parent 0e33cb2 commit d0fb3bf
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/build-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ on:
push:
branches:
- main
- jellyfin-chiseled
schedule:
- cron: '0 0 * * *'

Expand Down
94 changes: 94 additions & 0 deletions images/jellyfin/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
ARG GOLANG_VERSION
FROM golang:$GOLANG_VERSION AS builder

ARG TARGETARCH
ARG VERSION
ARG FFMPEG_VERSION=6.0.1-8
ARG CHISEL_VERSION

# Install chisel and build rootfs with jellyfin dependencies
RUN \
go install github.com/canonical/chisel/cmd/chisel@${CHISEL_VERSION} \
&& curl -LO https://raw.githubusercontent.com/canonical/rocks-toolbox/main/chisel-wrapper \
&& chmod +x ./chisel-wrapper \
&& apt update \
&& apt install file --yes \
&& mkdir -p /rootfs/var/lib/dpkg \
&& git clone -b jellyfin https://github.com/HadrienPatte/chisel-releases.git \
&& ./chisel-wrapper --generate-dpkg-status /rootfs/var/lib/dpkg/status -- \
--release ./chisel-releases \
--root /rootfs \
base-files_base \
ca-certificates_data \
dotnet-runtime-8.0_libs \
libsqlite3-0_libs \
\
libbluray2_libs \
libbz2-1.0_libs \
libc6_libs \
libelf1t64_libs \
libexpat1_libs \
libgcc-s1_libs \
libgmp10_libs \
libgnutls30t64_libs \
libllvm17t64_libs \
libmp3lame0_libs \
libopenmpt0t64_libs \
libopus0_libs \
libpciaccess0_libs \
libstdc++6_libs \
libtheora0_libs \
libudev1_libs \
libvorbis0a_libs \
libvorbisenc2_libs \
libvpx9_libs \
libwebp7_libs \
libwebpmux3_libs \
libx11-xcb1_libs \
libx264-164_libs \
libx265-199_libs \
libxcb-dri2-0_libs \
libxcb-dri3-0_libs \
libxcb-present0_libs \
libxcb-randr0_libs \
libxcb-shm0_libs \
libxcb-sync1_libs \
libxcb-xfixes0_libs \
libxcb1_libs \
libxshmfence1_libs \
libzstd1_libs \
libzvbi0t64_libs \
ocl-icd-libopencl1_libs \
&& useradd \
--root /rootfs \
--system \
--no-create-home \
--uid 1000 \
nonroot \
&& rm /rootfs/etc/.pwd.lock \
&& mkdir /rootfs/config \
&& chown 1000 /rootfs/config

# Install jellyfin
RUN \
mkdir /jellyfin \
&& curl -LO https://repo.jellyfin.org/files/ffmpeg/ubuntu/6.x/${FFMPEG_VERSION}/${TARGETARCH}/jellyfin-ffmpeg6_${FFMPEG_VERSION}-noble_${TARGETARCH}.deb \
&& dpkg --extract jellyfin-ffmpeg6_*.deb /jellyfin \
\
&& curl -LO https://repo.jellyfin.org/files/server/ubuntu/stable/v${VERSION}/${TARGETARCH}/jellyfin-web_${VERSION}+ubu2404_all.deb \
&& dpkg --extract jellyfin-web_*.deb /jellyfin \
\
&& curl -LO https://repo.jellyfin.org/files/server/ubuntu/stable/v${VERSION}/${TARGETARCH}/jellyfin-server_${VERSION}+ubu2404_${TARGETARCH}.deb \
&& dpkg --extract jellyfin-server_*.deb /jellyfin \
\
&& rm \
/jellyfin/usr/share/doc/*/changelog*.gz

FROM scratch
COPY --from=builder /rootfs /
COPY --from=builder /jellyfin/usr /usr

USER nonroot
ENV XDG_CACHE_HOME=/config/cache
ENTRYPOINT ["/usr/lib/jellyfin/bin/jellyfin", "--ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg", "--webdir=/usr/share/jellyfin/web", "--datadir=/config"]

3 changes: 3 additions & 0 deletions images/jellyfin/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"repository": "jellyfin/jellyfin"
}

0 comments on commit d0fb3bf

Please sign in to comment.