diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..26476af --- /dev/null +++ b/Dockerfile @@ -0,0 +1,63 @@ +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"] + +