FROM alpine:latest ARG DOTNET_VERSION=8.0 ARG NODEJS_VERSION=20 ARG SOURCE_DIR=/jellyfin ARG ARTIFACT_DIR=/dist ARG DOTNET_VERSION ARG NODEJS_VERSION ENV SOURCE_DIR=/jellyfin ENV ARTIFAVT_DIR=/dist ENV TYPE=$(PACKAGE_TYPE) ENV ARCHIVE_TYPES=targz RUN apk --no-cache add -u -f \ wget \ curl \ unzip \ git \ debhelper \ gnupg \ devscripts \ build-essential \ mmv \ lsb-release \ zip \ libssl*.* \ liblttng-ust*\ libssl-dev \ libfontconfig*-dev \ libcurl*openssl-dev \ libfreetype-dev \ dotnet8-sdk \ nodejs \ npm \ ffmpeg WORKDIR /home/root RUN git clone https://github.com/jellyfin/jellyfin.git RUN mv jellyfin jellyfin-server RUN git clone https://github.com/jellyfin/jellyfin-web.git RUN dotnet publish jellyfin-server/Jellyfin.Server --configuration Release --self-contained --runtime linux-amd64 --output /home/dist/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true WORKDIR /home/root/jellyfin-web RUN npm ci --no-audit --unsafe-perm RUN npm run build:production WORKDIR /home/root RUN rm -rf /home/dist RUN mkdir /home/dist # Patch jellyfin-server RUN sed -i '/^\s*NetworkChange\.Network/d' jellyfin-server/src/Jellyfin.Networking/Manager/NetworkManager.cs #RUN sed -i '/^/d' jellyfin-server/src/Jellyfin.Networking/Manager/NetworkManager.cs RUN dotnet publish jellyfin-server/Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-x64 --output /home/dist/jellyfin -p DebugSymbols=false -p:DebugType=none -p:UseAppHost=true RUN mv /home/root/jellyfin-web/dist /home/dist/jellyfin/jellyfin-web ENTRYPOINT ["/home/dist/jellyfin/jellyfin"]