f1167ace7e
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.
45 lines
1.4 KiB
Docker
45 lines
1.4 KiB
Docker
# Requires binfm_misc registration
|
|
# https://github.com/multiarch/qemu-user-static#binfmt_misc-register
|
|
ARG DOTNET_VERSION=3.0
|
|
|
|
|
|
FROM node:alpine as web-builder
|
|
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-* \
|
|
&& yarn install \
|
|
&& yarn build \
|
|
&& mv dist /dist
|
|
|
|
|
|
FROM mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION} as builder
|
|
WORKDIR /repo
|
|
COPY . .
|
|
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
|
|
# Discard objs - may cause failures if exists
|
|
RUN find . -type d -name obj | xargs -r rm -r
|
|
# Build
|
|
RUN dotnet publish Jellyfin.Server --configuration Release --output="/jellyfin" --self-contained --runtime linux-arm64 "-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none"
|
|
|
|
|
|
FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu
|
|
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 \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& mkdir -p /cache /config /media \
|
|
&& chmod 777 /cache /config /media
|
|
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 ./jellyfin/jellyfin \
|
|
--datadir /config \
|
|
--cachedir /cache \
|
|
--ffmpeg /usr/bin/ffmpeg
|