aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Rabert <6550543+nvllsvm@users.noreply.github.com>2019-01-06 22:49:13 -0500
committerGitHub <noreply@github.com>2019-01-06 22:49:13 -0500
commit0b804629b85498370c882f5562dfc7acd84bfd11 (patch)
tree4971c970bbdb797cc5b3da2d8bae506231b173a5
parent169709096f58046c89c87594757ec1de6d915326 (diff)
parent1c326fe7d4367a2cfb91ea11e6440da11c346744 (diff)
Merge pull request #469 from nvllsvm/ffmpeg_layarg
Download ffmpeg in a separate layer
-rw-r--r--Dockerfile19
1 files changed, 12 insertions, 7 deletions
diff --git a/Dockerfile b/Dockerfile
index 9ac8d48e5..75700e6f5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,15 @@
ARG DOTNET_VERSION=2
+
+# Download ffmpeg first to allow quicker rebuild of other layers
+FROM alpine as ffmpeg
+ARG FFMPEG_URL=https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xz
+RUN wget ${FFMPEG_URL} -O - | tar Jxf - \
+ && mkdir ffmpeg-bin \
+ && mv ffmpeg*/ffmpeg ffmpeg-bin \
+ && mv ffmpeg*/ffprobe ffmpeg-bin
+
+
FROM microsoft/dotnet:${DOTNET_VERSION}-sdk as builder
WORKDIR /repo
COPY . .
@@ -7,17 +17,12 @@ RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \
&& dotnet clean \
&& dotnet publish --configuration release --output /jellyfin
+
FROM microsoft/dotnet:${DOTNET_VERSION}-runtime
COPY --from=builder /jellyfin /jellyfin
+COPY --from=ffmpeg /ffmpeg-bin/* /usr/bin/
EXPOSE 8096
-
VOLUME /config /media
-
-ARG FFMPEG_URL=https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xz
RUN apt update \
- && apt install -y xz-utils \
- && curl ${FFMPEG_URL} | tar Jxf - -C /usr/bin --wildcards --strip-components=1 ffmpeg*/ffmpeg ffmpeg*/ffprobe \
- && apt remove -y xz-utils \
&& apt install -y libfontconfig1 # needed for Skia
-
ENTRYPOINT dotnet /jellyfin/jellyfin.dll -programdata /config