From cd3c14961f9acfce29bdff14da9fcbc063a40257 Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Sat, 19 Oct 2019 19:32:19 -0400 Subject: Default to jellyfin-web master --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index 118acfc0f4..7fe55d5445 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ ARG DOTNET_VERSION=2.2 ARG FFMPEG_VERSION=latest FROM node:alpine as web-builder -ARG JELLYFIN_WEB_VERSION=v10.5.0 +ARG JELLYFIN_WEB_VERSION=master RUN apk add curl \ && curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \ && cd jellyfin-web-* \ -- cgit v1.2.3 From 64eca9e1c74c3a22008d06569c992ef0ec428e9c Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Sat, 19 Oct 2019 19:36:56 -0400 Subject: Update Docker containers to dotnet 3.0 --- Dockerfile | 2 +- Dockerfile.arm | 2 -- Dockerfile.arm64 | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index 7fe55d5445..6c938a557a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG DOTNET_VERSION=2.2 +ARG DOTNET_VERSION=3.0 ARG FFMPEG_VERSION=latest FROM node:alpine as web-builder diff --git a/Dockerfile.arm b/Dockerfile.arm index 7999621ba5..92af225301 100644 --- a/Dockerfile.arm +++ b/Dockerfile.arm @@ -17,8 +17,6 @@ FROM mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION} as builder WORKDIR /repo COPY . . ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 -# TODO Remove or update the sed line when we update dotnet version. -RUN find . -type f -exec sed -i 's/netcoreapp2.1/netcoreapp3.0/g' {} \; # Discard objs - may cause failures if exists RUN find . -type d -name obj | xargs -r rm -r # Build diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 index 29ce318697..7dbdd1f06b 100644 --- a/Dockerfile.arm64 +++ b/Dockerfile.arm64 @@ -17,8 +17,6 @@ FROM mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION} as builder WORKDIR /repo COPY . . ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 -# TODO Remove or update the sed line when we update dotnet version. -RUN find . -type f -exec sed -i 's/netcoreapp2.1/netcoreapp3.0/g' {} \; # Discard objs - may cause failures if exists RUN find . -type d -name obj | xargs -r rm -r # Build -- cgit v1.2.3 From 4ace99ad76ef811b0e2d7ab43550d7faa96eec7d Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Sat, 19 Oct 2019 20:00:54 -0400 Subject: Fix Docker ffmpeg --- Dockerfile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index 6c938a557a..e2e23da7f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,20 +19,24 @@ RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" FROM jellyfin/ffmpeg:${FFMPEG_VERSION} as ffmpeg FROM mcr.microsoft.com/dotnet/core/runtime:${DOTNET_VERSION} -COPY --from=ffmpeg / / +COPY --from=ffmpeg /opt/ffmpeg /opt/ffmpeg COPY --from=builder /jellyfin /jellyfin COPY --from=web-builder /dist /jellyfin/jellyfin-web # Install dependencies: # libfontconfig1: needed for Skia +# libgomp1: needed for ffmpeg +# libva-drm2: needed for ffmpeg # mesa-va-drivers: needed for VAAPI RUN apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ - libfontconfig1 mesa-va-drivers \ + libfontconfig1 libgomp1 libva-drm2 mesa-va-drivers \ && apt-get clean autoclean \ && apt-get autoremove \ && rm -rf /var/lib/apt/lists/* \ && mkdir -p /cache /config /media \ - && chmod 777 /cache /config /media + && chmod 777 /cache /config /media \ + && ln -s /opt/ffmpeg/bin/ffmpeg /usr/local/bin \ + && ln -s /opt/ffmpeg/bin/ffprobe /usr/local/bin EXPOSE 8096 VOLUME /cache /config /media -- cgit v1.2.3 From f1167ace7e510c459341ab60337edc5385bcdc92 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Sun, 20 Oct 2019 14:37:01 +0200 Subject: Use the correct dotnet runtime in Docker images The self contained packages already contains the dotnet runtime No need to use the dotnet runtime base image. This should decrease the size of the image. --- Dockerfile | 6 ++++-- Dockerfile.arm | 6 ++++-- Dockerfile.arm64 | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index e2e23da7f6..afa8152ff9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,8 +17,8 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-x64 "-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none" FROM jellyfin/ffmpeg:${FFMPEG_VERSION} as ffmpeg +FROM debian:stretch-slim -FROM mcr.microsoft.com/dotnet/core/runtime:${DOTNET_VERSION} COPY --from=ffmpeg /opt/ffmpeg /opt/ffmpeg COPY --from=builder /jellyfin /jellyfin COPY --from=web-builder /dist /jellyfin/jellyfin-web @@ -38,9 +38,11 @@ RUN apt-get update \ && ln -s /opt/ffmpeg/bin/ffmpeg /usr/local/bin \ && ln -s /opt/ffmpeg/bin/ffprobe /usr/local/bin +ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 + EXPOSE 8096 VOLUME /cache /config /media -ENTRYPOINT dotnet /jellyfin/jellyfin.dll \ +ENTRYPOINT ./jellyfin/jellyfin \ --datadir /config \ --cachedir /cache \ --ffmpeg /usr/local/bin/ffmpeg diff --git a/Dockerfile.arm b/Dockerfile.arm index 92af225301..f8c8511ae5 100644 --- a/Dockerfile.arm +++ b/Dockerfile.arm @@ -24,7 +24,7 @@ RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" FROM multiarch/qemu-user-static:x86_64-arm as qemu -FROM mcr.microsoft.com/dotnet/core/runtime:${DOTNET_VERSION}-stretch-slim-arm32v7 +FROM debian:stretch-slim-arm32v7 COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin RUN apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y ffmpeg \ @@ -34,9 +34,11 @@ RUN apt-get update \ COPY --from=builder /jellyfin /jellyfin COPY --from=web-builder /dist /jellyfin/jellyfin-web +ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 + EXPOSE 8096 VOLUME /cache /config /media -ENTRYPOINT dotnet /jellyfin/jellyfin.dll \ +ENTRYPOINT ./jellyfin/jellyfin \ --datadir /config \ --cachedir /cache \ --ffmpeg /usr/bin/ffmpeg diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 index 7dbdd1f06b..9b343659f8 100644 --- a/Dockerfile.arm64 +++ b/Dockerfile.arm64 @@ -24,7 +24,7 @@ RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu -FROM mcr.microsoft.com/dotnet/core/runtime:${DOTNET_VERSION}-stretch-slim-arm64v8 +FROM debian:stretch-slim-arm64v8 COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin RUN apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y ffmpeg \ @@ -34,9 +34,11 @@ RUN apt-get update \ COPY --from=builder /jellyfin /jellyfin COPY --from=web-builder /dist /jellyfin/jellyfin-web +ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 + EXPOSE 8096 VOLUME /cache /config /media -ENTRYPOINT dotnet /jellyfin/jellyfin.dll \ +ENTRYPOINT ./jellyfin/jellyfin \ --datadir /config \ --cachedir /cache \ --ffmpeg /usr/bin/ffmpeg -- cgit v1.2.3 From 435c30aed9d066ab9bbbe268e80065dc928a9fc6 Mon Sep 17 00:00:00 2001 From: Justin Fenn Date: Sun, 27 Oct 2019 12:28:56 -0700 Subject: use exec form for Dockerfile entrypoint This causes the jellyfin process to be pid 1 in the container. It can receive signals like SIGTERM (from "docker stop", for example) and shut down properly. --- Dockerfile | 8 ++++---- Dockerfile.arm | 8 ++++---- Dockerfile.arm64 | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index afa8152ff9..349d57ac07 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,7 +42,7 @@ ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 EXPOSE 8096 VOLUME /cache /config /media -ENTRYPOINT ./jellyfin/jellyfin \ - --datadir /config \ - --cachedir /cache \ - --ffmpeg /usr/local/bin/ffmpeg +ENTRYPOINT ["./jellyfin/jellyfin", \ + "--datadir", "/config", \ + "--cachedir", "/cache", \ + "--ffmpeg", "/usr/local/bin/ffmpeg"] diff --git a/Dockerfile.arm b/Dockerfile.arm index f8c8511ae5..fd3d1e0704 100644 --- a/Dockerfile.arm +++ b/Dockerfile.arm @@ -38,7 +38,7 @@ ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 EXPOSE 8096 VOLUME /cache /config /media -ENTRYPOINT ./jellyfin/jellyfin \ - --datadir /config \ - --cachedir /cache \ - --ffmpeg /usr/bin/ffmpeg +ENTRYPOINT ["./jellyfin/jellyfin", \ + "--datadir", "/config", \ + "--cachedir", "/cache", \ + "--ffmpeg", "/usr/bin/ffmpeg"] diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 index 9b343659f8..3c1b2e3eab 100644 --- a/Dockerfile.arm64 +++ b/Dockerfile.arm64 @@ -38,7 +38,7 @@ ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 EXPOSE 8096 VOLUME /cache /config /media -ENTRYPOINT ./jellyfin/jellyfin \ - --datadir /config \ - --cachedir /cache \ - --ffmpeg /usr/bin/ffmpeg +ENTRYPOINT ["./jellyfin/jellyfin", \ + "--datadir", "/config", \ + "--cachedir", "/cache", \ + "--ffmpeg", "/usr/bin/ffmpeg"] -- cgit v1.2.3 From 26ce62d31835aa394c33377989b7641ec740ab40 Mon Sep 17 00:00:00 2001 From: Steve Hayles Date: Sun, 27 Oct 2019 20:22:17 +0000 Subject: Update Dockerfile debian-stretch packages were missing for libva-drm2 so would not build the base image mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION} is incorrectly referencing .NET Core 3-preview6 which will cause issues at runtime with library references being mismatched --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index afa8152ff9..acf5b39630 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,14 +10,14 @@ RUN apk add curl \ && yarn build \ && mv dist /dist -FROM mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION} as builder +FROM mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION}-buster as builder WORKDIR /repo COPY . . ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-x64 "-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none" FROM jellyfin/ffmpeg:${FFMPEG_VERSION} as ffmpeg -FROM debian:stretch-slim +FROM debian:buster-slim COPY --from=ffmpeg /opt/ffmpeg /opt/ffmpeg COPY --from=builder /jellyfin /jellyfin -- cgit v1.2.3 From b1e65c6cd41387c9ac3f6fbaf560b4649c227bae Mon Sep 17 00:00:00 2001 From: Steve Hayles Date: Mon, 28 Oct 2019 08:22:59 +0000 Subject: Adding OpenSSL library Depending on configuration the docker container may need OpenSSL to support https access --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index acf5b39630..c24c321817 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,7 +29,7 @@ COPY --from=web-builder /dist /jellyfin/jellyfin-web # mesa-va-drivers: needed for VAAPI RUN apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ - libfontconfig1 libgomp1 libva-drm2 mesa-va-drivers \ + libfontconfig1 libgomp1 libva-drm2 mesa-va-drivers openssl \ && apt-get clean autoclean \ && apt-get autoremove \ && rm -rf /var/lib/apt/lists/* \ -- cgit v1.2.3