aboutsummaryrefslogtreecommitdiff
path: root/deployment/docker
diff options
context:
space:
mode:
Diffstat (limited to 'deployment/docker')
-rw-r--r--deployment/docker/Dockerfile28
-rw-r--r--deployment/docker/Dockerfile.aarch6417
-rw-r--r--deployment/docker/build.sh7
3 files changed, 52 insertions, 0 deletions
diff --git a/deployment/docker/Dockerfile b/deployment/docker/Dockerfile
new file mode 100644
index 000000000..c32cdcf9b
--- /dev/null
+++ b/deployment/docker/Dockerfile
@@ -0,0 +1,28 @@
+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 . .
+RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \
+ && dotnet clean \
+ && dotnet publish --configuration release --output /jellyfin Jellyfin.Server
+
+
+FROM microsoft/dotnet:${DOTNET_VERSION}-runtime
+COPY --from=builder /jellyfin /jellyfin
+COPY --from=ffmpeg /ffmpeg-bin/* /usr/bin/
+EXPOSE 8096
+VOLUME /config /media
+RUN apt update \
+ && apt install -y libfontconfig1 --no-install-recommends # needed for Skia
+ENTRYPOINT dotnet /jellyfin/jellyfin.dll -programdata /config
diff --git a/deployment/docker/Dockerfile.aarch64 b/deployment/docker/Dockerfile.aarch64
new file mode 100644
index 000000000..d1423dda2
--- /dev/null
+++ b/deployment/docker/Dockerfile.aarch64
@@ -0,0 +1,17 @@
+ARG DOTNET_VERSION=3.0
+
+FROM microsoft/dotnet:${DOTNET_VERSION}-sdk as builder
+WORKDIR /repo
+COPY . .
+RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \
+ && find . -type f -exec sed -i 's/netcoreapp2.1/netcoreapp3.0/g' {} \; \
+ && dotnet clean \
+ && dotnet publish --configuration release --output /jellyfin Jellyfin.Server
+
+FROM microsoft/dotnet:${DOTNET_VERSION}-runtime
+COPY --from=builder /jellyfin /jellyfin
+EXPOSE 8096
+RUN apt update \
+ && apt install -y ffmpeg
+VOLUME /config /media
+ENTRYPOINT dotnet /jellyfin/jellyfin.dll -programdata /config
diff --git a/deployment/docker/build.sh b/deployment/docker/build.sh
new file mode 100644
index 000000000..b75cedc01
--- /dev/null
+++ b/deployment/docker/build.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+source ../common.build.sh
+
+VERSION=`get_version ../..`
+
+build_jellyfin_docker ../.. Dockerfile jellyfin:${VERSION} \ No newline at end of file