mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-15 10:43:30 +01:00
Refactor Dockerfile and build (#10603)
* Fix fedora
* Fix RID Linux
* Fix package and image versions
* Fix buildling and optimize docker images
```
* Removed find obj
* Changed curl command and added gpg
* Added to Contributors
* Removed apt-transport-https package
* Removed RASPI
* Update Intel drivers version
* Update Dockerfile for CentOS, Fedora, and portable deployments
- Changed Jammy docker image to Built-in Jammy Microsoft .NET SDK image
- Switched from using "Yum" to "Dnf" for CentOS and Fedora
- Added "dnf clean all" and "rm -rf /var/cache/dnf" to the end of CentOS and Fedora Dockerfiles
- Added "apt-get clean", "apt-get autoremove", "rm -rf /var/lib/apt/lists/*" to the end of the Debian/Ubuntu Dockerfiles
- Added ${DOTNET_VERSION} in every Dockerfile except CentOS/Fedora
- Removed previous warning comment for dotnet publish build in parallel
- Arranged package installation
* Re-arranged Dockerfile package installation
* Re-align
* Remove curl
* Remove curl
This commit is contained in:
@@ -1,29 +1,36 @@
|
||||
FROM centos:7
|
||||
FROM quay.io/centos/centos:stream9
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare CentOS environment
|
||||
RUN yum update -yq \
|
||||
&& yum install -yq epel-release \
|
||||
&& yum install -yq @buildsys-build rpmdevtools yum-plugins-core libcurl-devel fontconfig-devel freetype-devel openssl-devel glibc-devel libicu-devel git wget
|
||||
RUN dnf update -yq \
|
||||
&& dnf install -yq epel-release \
|
||||
&& dnf install -yq \
|
||||
rpmdevtools libcurl-devel fontconfig-devel \
|
||||
freetype-devel openssl-devel glibc-devel \
|
||||
libicu-devel git wget dnf-plugins-core \
|
||||
&& dnf clean all \
|
||||
&& rm -rf /var/cache/dnf
|
||||
|
||||
# Install DotNET SDK
|
||||
RUN wget -q https://download.visualstudio.microsoft.com/download/pr/5226a5fa-8c0b-474f-b79a-8984ad7c5beb/3113ccbf789c9fd29972835f0f334b7a/dotnet-sdk-8.0.100-linux-x64.tar.gz -O dotnet-sdk.tar.gz \
|
||||
&& mkdir -p dotnet-sdk \
|
||||
&& tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
|
||||
&& ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
|
||||
&& mkdir -p dotnet-sdk \
|
||||
&& tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
|
||||
&& ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
|
||||
|
||||
# Create symlinks and directories
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.centos.amd64 /build.sh \
|
||||
&& mkdir -p ${SOURCE_DIR}/SPECS \
|
||||
&& ln -s ${SOURCE_DIR}/fedora/jellyfin.spec ${SOURCE_DIR}/SPECS/jellyfin.spec \
|
||||
&& mkdir -p ${SOURCE_DIR}/SOURCES \
|
||||
&& ln -s ${SOURCE_DIR}/fedora ${SOURCE_DIR}/SOURCES
|
||||
&& mkdir -p ${SOURCE_DIR}/SPECS \
|
||||
&& ln -s ${SOURCE_DIR}/fedora/jellyfin.spec ${SOURCE_DIR}/SPECS/jellyfin.spec \
|
||||
&& mkdir -p ${SOURCE_DIR}/SOURCES \
|
||||
&& ln -s ${SOURCE_DIR}/fedora ${SOURCE_DIR}/SOURCES
|
||||
|
||||
VOLUME ${SOURCE_DIR}/
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -10,11 +14,14 @@ ENV ARCH=amd64
|
||||
ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
RUN apt-get update -yq \
|
||||
&& apt-get install --no-install-recommends -yq \
|
||||
debhelper gnupg devscripts build-essential mmv \
|
||||
libcurl4-openssl-dev libfontconfig1-dev libfreetype6-dev libssl-dev \
|
||||
libssl1.1 liblttng-ust0
|
||||
libcurl4-openssl-dev libfontconfig1-dev libfreetype6-dev \
|
||||
libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yq \
|
||||
&& apt-get autoremove -yq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.amd64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,23 +15,26 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts build-essential mmv
|
||||
|
||||
# Prepare the cross-toolchain
|
||||
RUN dpkg --add-architecture arm64 \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends cross-gcc-dev \
|
||||
&& TARGET_LIST="arm64" cross-gcc-gensource 9 \
|
||||
&& cd cross-gcc-packages-amd64/cross-gcc-9-arm64 \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
gcc-9-source libstdc++-9-dev-arm64-cross \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install --no-install-recommends -yqq cross-gcc-dev \
|
||||
&& TARGET_LIST="arm64" cross-gcc-gensource 12 \
|
||||
&& cd cross-gcc-packages-amd64/cross-gcc-12-arm64 \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
gcc-12-source libstdc++-12-dev-arm64-cross \
|
||||
binutils-aarch64-linux-gnu bison flex libtool \
|
||||
gdb sharutils netbase libmpc-dev libmpfr-dev libgmp-dev \
|
||||
systemtap-sdt-dev autogen expect chrpath zlib1g-dev zip \
|
||||
libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 \
|
||||
libcurl4-openssl-dev:arm64 libfontconfig1-dev:arm64 \
|
||||
libfreetype6-dev:arm64 libssl-dev:arm64 liblttng-ust0:arm64 libstdc++-9-dev:arm64
|
||||
libfreetype6-dev:arm64 libssl-dev:arm64 liblttng-ust1:arm64 libstdc++-12-dev:arm64 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.arm64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,24 +15,27 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts build-essential mmv
|
||||
|
||||
# Prepare the cross-toolchain
|
||||
RUN dpkg --add-architecture armhf \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends cross-gcc-dev \
|
||||
&& TARGET_LIST="armhf" cross-gcc-gensource 9 \
|
||||
&& cd cross-gcc-packages-amd64/cross-gcc-9-armhf \
|
||||
&& apt-get install -yqq --no-install-recommends\
|
||||
gcc-9-source libstdc++-9-dev-armhf-cross \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install --no-install-recommends -yqq cross-gcc-dev \
|
||||
&& TARGET_LIST="armhf" cross-gcc-gensource 12 \
|
||||
&& cd cross-gcc-packages-amd64/cross-gcc-12-armhf \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
gcc-12-source libstdc++-12-dev-armhf-cross \
|
||||
binutils-aarch64-linux-gnu bison flex libtool gdb \
|
||||
sharutils netbase libmpc-dev libmpfr-dev libgmp-dev \
|
||||
systemtap-sdt-dev autogen expect chrpath zlib1g-dev \
|
||||
zip binutils-arm-linux-gnueabihf libc6-dev:armhf \
|
||||
linux-libc-dev:armhf libgcc1:armhf libcurl4-openssl-dev:armhf \
|
||||
libfontconfig1-dev:armhf libfreetype6-dev:armhf libssl-dev:armhf \
|
||||
liblttng-ust0:armhf libstdc++-9-dev:armhf
|
||||
liblttng-ust1:armhf libstdc++-12-dev:armhf \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
ARG SOURCE_DIR=/src
|
||||
ARG ARTIFACT_DIR=/jellyfin
|
||||
|
||||
WORKDIR ${SOURCE_DIR}
|
||||
COPY . .
|
||||
|
||||
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
# because of changes in docker and systemd we need to not build in parallel at the moment
|
||||
# see https://success.docker.com/article/how-to-reserve-resource-temporarily-unavailable-errors-due-to-tasksmax-setting
|
||||
RUN dotnet publish Jellyfin.Server --disable-parallel --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-x64 -p:DebugSymbols=false -p:DebugType=none
|
||||
RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-x64 -p:DebugSymbols=false -p:DebugType=none
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
ARG SOURCE_DIR=/src
|
||||
ARG ARTIFACT_DIR=/jellyfin
|
||||
|
||||
WORKDIR ${SOURCE_DIR}
|
||||
COPY . .
|
||||
|
||||
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
# because of changes in docker and systemd we need to not build in parallel at the moment
|
||||
# see https://success.docker.com/article/how-to-reserve-resource-temporarily-unavailable-errors-due-to-tasksmax-setting
|
||||
RUN dotnet publish Jellyfin.Server --disable-parallel --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-arm64 -p:DebugSymbols=false -p:DebugType=none
|
||||
RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-arm64 -p:DebugSymbols=false -p:DebugType=none
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
ARG SOURCE_DIR=/src
|
||||
ARG ARTIFACT_DIR=/jellyfin
|
||||
|
||||
WORKDIR ${SOURCE_DIR}
|
||||
COPY . .
|
||||
|
||||
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
# because of changes in docker and systemd we need to not build in parallel at the moment
|
||||
# see https://success.docker.com/article/how-to-reserve-resource-temporarily-unavailable-errors-due-to-tasksmax-setting
|
||||
RUN dotnet publish Jellyfin.Server --disable-parallel --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-arm -p:DebugSymbols=false -p:DebugType=none
|
||||
RUN dotnet publish Jellyfin.Server --configuration Release --output="${ARTIFACT_DIR}" --self-contained --runtime linux-arm -p:DebugSymbols=false -p:DebugType=none
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
FROM fedora:39
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -9,21 +11,26 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Fedora environment
|
||||
RUN dnf update -yq \
|
||||
&& dnf install -yq @buildsys-build rpmdevtools git dnf-plugins-core libcurl-devel fontconfig-devel freetype-devel openssl-devel glibc-devel libicu-devel systemd wget make
|
||||
&& dnf install -yq \
|
||||
@buildsys-build rpmdevtools git \
|
||||
dnf-plugins-core libcurl-devel fontconfig-devel \
|
||||
freetype-devel openssl-devel glibc-devel \
|
||||
libicu-devel systemd wget make \
|
||||
&& dnf clean all \
|
||||
&& rm -rf /var/cache/dnf
|
||||
|
||||
# Install DotNET SDK
|
||||
RUN wget -q https://download.visualstudio.microsoft.com/download/pr/5226a5fa-8c0b-474f-b79a-8984ad7c5beb/3113ccbf789c9fd29972835f0f334b7a/dotnet-sdk-8.0.100-linux-x64.tar.gz -O dotnet-sdk.tar.gz \
|
||||
&& mkdir -p dotnet-sdk \
|
||||
&& tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
|
||||
&& ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
|
||||
|
||||
&& mkdir -p dotnet-sdk \
|
||||
&& tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
|
||||
&& ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
|
||||
|
||||
# Create symlinks and directories
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.fedora.amd64 /build.sh \
|
||||
&& mkdir -p ${SOURCE_DIR}/SPECS \
|
||||
&& ln -s ${SOURCE_DIR}/fedora/jellyfin.spec ${SOURCE_DIR}/SPECS/jellyfin.spec \
|
||||
&& mkdir -p ${SOURCE_DIR}/SOURCES \
|
||||
&& ln -s ${SOURCE_DIR}/fedora ${SOURCE_DIR}/SOURCES
|
||||
&& mkdir -p ${SOURCE_DIR}/SPECS \
|
||||
&& ln -s ${SOURCE_DIR}/fedora/jellyfin.spec ${SOURCE_DIR}/SPECS/jellyfin.spec \
|
||||
&& mkdir -p ${SOURCE_DIR}/SOURCES \
|
||||
&& ln -s ${SOURCE_DIR}/fedora ${SOURCE_DIR}/SOURCES
|
||||
|
||||
VOLUME ${SOURCE_DIR}/
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,10 +15,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts unzip \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.amd64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,10 +15,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts unzip \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.amd64-musl /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,10 +15,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts unzip \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.arm64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,10 +15,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts unzip \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.armhf /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,10 +15,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
apt-transport-https debhelper gnupg devscripts unzip \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts unzip \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.linux.musl-linux-arm64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,10 +15,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.macos.amd64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,10 +15,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.macos.arm64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -10,10 +14,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.portable /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM ubuntu:bionic
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,16 +15,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg wget ca-certificates devscripts \
|
||||
mmv build-essential libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0
|
||||
|
||||
# Install dotnet repository
|
||||
RUN wget -q https://download.visualstudio.microsoft.com/download/pr/5226a5fa-8c0b-474f-b79a-8984ad7c5beb/3113ccbf789c9fd29972835f0f334b7a/dotnet-sdk-8.0.100-linux-x64.tar.gz -O dotnet-sdk.tar.gz \
|
||||
&& mkdir -p dotnet-sdk \
|
||||
&& tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
|
||||
&& ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.amd64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM ubuntu:bionic
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,39 +15,36 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg wget ca-certificates devscripts \
|
||||
mmv build-essential lsb-release
|
||||
|
||||
# Install dotnet repository
|
||||
RUN wget -q https://download.visualstudio.microsoft.com/download/pr/5226a5fa-8c0b-474f-b79a-8984ad7c5beb/3113ccbf789c9fd29972835f0f334b7a/dotnet-sdk-8.0.100-linux-x64.tar.gz -O dotnet-sdk.tar.gz \
|
||||
&& mkdir -p dotnet-sdk \
|
||||
&& tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
|
||||
&& ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
|
||||
|
||||
# Prepare the cross-toolchain
|
||||
RUN rm /etc/apt/sources.list \
|
||||
&& export CODENAME="$( lsb_release -c -s )" \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
|
||||
&& echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
|
||||
&& echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
|
||||
&& echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
|
||||
&& dpkg --add-architecture arm64 \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends cross-gcc-dev \
|
||||
&& TARGET_LIST="arm64" cross-gcc-gensource 6 \
|
||||
&& cd cross-gcc-packages-amd64/cross-gcc-6-arm64 \
|
||||
&& ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
gcc-6-source libstdc++6-arm64-cross binutils-aarch64-linux-gnu \
|
||||
bison flex libtool gdb sharutils netbase libcloog-isl-dev libmpc-dev \
|
||||
&& export CODENAME="$( lsb_release -c -s )" \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
|
||||
&& echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
|
||||
&& echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
|
||||
&& echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
|
||||
&& dpkg --add-architecture arm64 \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install --no-install-recommends -yqq cross-gcc-dev \
|
||||
&& TARGET_LIST="arm64" cross-gcc-gensource 12 \
|
||||
&& cd cross-gcc-packages-amd64/cross-gcc-12-arm64 \
|
||||
&& ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
gcc-12-source libstdc++6-arm64-cross binutils-aarch64-linux-gnu \
|
||||
bison flex libtool gdb sharutils netbase libmpc-dev \
|
||||
libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev \
|
||||
zip libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 libcurl4-openssl-dev:arm64 \
|
||||
libfontconfig1-dev:arm64 libfreetype6-dev:arm64 liblttng-ust0:arm64 libstdc++6:arm64 libssl-dev:arm64
|
||||
libfontconfig1-dev:arm64 libfreetype6-dev:arm64 liblttng-ust1:arm64 libstdc++6:arm64 libssl-dev:arm64 \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.arm64 /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM ubuntu:bionic
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -11,39 +15,36 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg wget ca-certificates devscripts \
|
||||
mmv build-essential lsb-release
|
||||
|
||||
# Install dotnet repository
|
||||
RUN wget -q https://download.visualstudio.microsoft.com/download/pr/5226a5fa-8c0b-474f-b79a-8984ad7c5beb/3113ccbf789c9fd29972835f0f334b7a/dotnet-sdk-8.0.100-linux-x64.tar.gz -O dotnet-sdk.tar.gz \
|
||||
&& mkdir -p dotnet-sdk \
|
||||
&& tar -xzf dotnet-sdk.tar.gz -C dotnet-sdk \
|
||||
&& ln -s $( pwd )/dotnet-sdk/dotnet /usr/bin/dotnet
|
||||
|
||||
# Prepare the cross-toolchain
|
||||
RUN rm /etc/apt/sources.list \
|
||||
&& export CODENAME="$( lsb_release -c -s )" \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
|
||||
&& echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
|
||||
&& echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
|
||||
&& echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
|
||||
&& dpkg --add-architecture armhf \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install -yqq cross-gcc-dev \
|
||||
&& TARGET_LIST="armhf" cross-gcc-gensource 6 \
|
||||
&& cd cross-gcc-packages-amd64/cross-gcc-6-armhf \
|
||||
&& ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
gcc-6-source libstdc++6-armhf-cross binutils-arm-linux-gnueabihf \
|
||||
bison flex libtool gdb sharutils netbase libcloog-isl-dev libmpc-dev \
|
||||
&& export CODENAME="$( lsb_release -c -s )" \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
|
||||
&& echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
|
||||
&& echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
|
||||
&& echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
|
||||
&& echo "deb [arch=armhf] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/armhf.list \
|
||||
&& dpkg --add-architecture armhf \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install --no-install-recommends -yqq cross-gcc-dev \
|
||||
&& TARGET_LIST="armhf" cross-gcc-gensource 12 \
|
||||
&& cd cross-gcc-packages-amd64/cross-gcc-12-armhf \
|
||||
&& ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
gcc-12-source libstdc++6-armhf-cross binutils-arm-linux-gnueabihf \
|
||||
bison flex libtool gdb sharutils netbase libmpc-dev \
|
||||
libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev \
|
||||
zip libc6-dev:armhf linux-libc-dev:armhf libgcc1:armhf libcurl4-openssl-dev:armhf \
|
||||
libfontconfig1-dev:armhf libfreetype6-dev:armhf liblttng-ust0:armhf libstdc++6:armhf libssl-dev:armhf
|
||||
libfontconfig1-dev:armhf libfreetype6-dev:armhf liblttng-ust1:armhf libstdc++6:armhf libssl-dev:armhf \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-bookworm-slim
|
||||
ARG DOTNET_VERSION=8.0
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-bookworm-slim
|
||||
|
||||
# Docker build arguments
|
||||
ARG SOURCE_DIR=/jellyfin
|
||||
ARG ARTIFACT_DIR=/dist
|
||||
|
||||
# Docker run environment
|
||||
ENV SOURCE_DIR=/jellyfin
|
||||
ENV ARTIFACT_DIR=/dist
|
||||
@@ -10,10 +14,13 @@ ENV IS_DOCKER=YES
|
||||
|
||||
# Prepare Debian build environment
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
&& apt-get install --no-install-recommends -yqq \
|
||||
debhelper gnupg devscripts unzip \
|
||||
mmv libcurl4-openssl-dev libfontconfig1-dev \
|
||||
libfreetype6-dev libssl-dev libssl1.1 liblttng-ust0 zip
|
||||
libfreetype6-dev libssl-dev libssl3 liblttng-ust1 zip \
|
||||
&& apt-get clean autoclean -yqq \
|
||||
&& apt-get autoremove -yqq \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Link to docker-build script
|
||||
RUN ln -sf ${SOURCE_DIR}/deployment/build.windows.amd64 /build.sh
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
#= CentOS/RHEL 7+ amd64 .rpm
|
||||
#= CentOS/RHEL 8+ amd64 .rpm
|
||||
|
||||
set -o errexit
|
||||
set -o xtrace
|
||||
@@ -42,7 +42,7 @@ rpmbuild --rebuild -bb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm
|
||||
mv /root/rpmbuild/RPMS/x86_64/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
rm -f fedora/jellyfin*.tar.gz
|
||||
@@ -51,7 +51,7 @@ if [[ ${IS_DOCKER} == YES ]]; then
|
||||
pushd fedora
|
||||
|
||||
cp -a /tmp/spec.orig jellyfin.spec
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
@@ -37,7 +37,7 @@ mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
cp -a /tmp/control.orig debian/control
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -38,7 +38,7 @@ mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
cp -a /tmp/control.orig debian/control
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -38,7 +38,7 @@ mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
cp -a /tmp/control.orig debian/control
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -42,7 +42,7 @@ rpmbuild -rb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm
|
||||
mv /root/rpmbuild/RPMS/x86_64/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
rm -f fedora/jellyfin*.tar.gz
|
||||
@@ -51,7 +51,7 @@ if [[ ${IS_DOCKER} == YES ]]; then
|
||||
pushd fedora
|
||||
|
||||
cp -a /tmp/spec.orig jellyfin.spec
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
@@ -16,16 +16,16 @@ else
|
||||
fi
|
||||
|
||||
# Build archives
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-x64 --output dist/jellyfin-server_${version}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_${version}_linux-amd64.tar.gz -C dist jellyfin-server_${version}
|
||||
rm -rf dist/jellyfin-server_${version}
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_"${version}"_linux-amd64.tar.gz -C dist jellyfin-server_"${version}"
|
||||
rm -rf dist/jellyfin-server_"${version}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -16,16 +16,16 @@ else
|
||||
fi
|
||||
|
||||
# Build archives
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-x64 --output dist/jellyfin-server_${version}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_${version}_linux-amd64-musl.tar.gz -C dist jellyfin-server_${version}
|
||||
rm -rf dist/jellyfin-server_${version}
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_"${version}"_linux-amd64-musl.tar.gz -C dist jellyfin-server_"${version}"
|
||||
rm -rf dist/jellyfin-server_"${version}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -16,16 +16,16 @@ else
|
||||
fi
|
||||
|
||||
# Build archives
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-arm64 --output dist/jellyfin-server_${version}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_${version}_linux-arm64.tar.gz -C dist jellyfin-server_${version}
|
||||
rm -rf dist/jellyfin-server_${version}
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_"${version}"_linux-arm64.tar.gz -C dist jellyfin-server_"${version}"
|
||||
rm -rf dist/jellyfin-server_"${version}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -16,16 +16,16 @@ else
|
||||
fi
|
||||
|
||||
# Build archives
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-arm --output dist/jellyfin-server_${version}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_${version}_linux-armhf.tar.gz -C dist jellyfin-server_${version}
|
||||
rm -rf dist/jellyfin-server_${version}
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-arm --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_"${version}"_linux-armhf.tar.gz -C dist jellyfin-server_"${version}"
|
||||
rm -rf dist/jellyfin-server_"${version}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -16,16 +16,16 @@ else
|
||||
fi
|
||||
|
||||
# Build archives
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-arm64 --output dist/jellyfin-server_${version}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_${version}_linux-arm64-musl.tar.gz -C dist jellyfin-server_${version}
|
||||
rm -rf dist/jellyfin-server_${version}
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime linux-musl-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_"${version}"_linux-arm64-musl.tar.gz -C dist jellyfin-server_"${version}"
|
||||
rm -rf dist/jellyfin-server_"${version}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -16,16 +16,16 @@ else
|
||||
fi
|
||||
|
||||
# Build archives
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime osx-x64 --output dist/jellyfin-server_${version}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_${version}_macos-amd64.tar.gz -C dist jellyfin-server_${version}
|
||||
rm -rf dist/jellyfin-server_${version}
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime osx-x64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_"${version}"_macos-amd64.tar.gz -C dist jellyfin-server_"${version}"
|
||||
rm -rf dist/jellyfin-server_"${version}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -16,16 +16,16 @@ else
|
||||
fi
|
||||
|
||||
# Build archives
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime osx-arm64 --output dist/jellyfin-server_${version}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_${version}_macos-arm64.tar.gz -C dist jellyfin-server_${version}
|
||||
rm -rf dist/jellyfin-server_${version}
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime osx-arm64 --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
tar -czf jellyfin-server_"${version}"_macos-arm64.tar.gz -C dist jellyfin-server_"${version}"
|
||||
rm -rf dist/jellyfin-server_"${version}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -16,16 +16,16 @@ else
|
||||
fi
|
||||
|
||||
# Build archives
|
||||
dotnet publish Jellyfin.Server --configuration Release --output dist/jellyfin-server_${version}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=false
|
||||
tar -czf jellyfin-server_${version}_portable.tar.gz -C dist jellyfin-server_${version}
|
||||
rm -rf dist/jellyfin-server_${version}
|
||||
dotnet publish Jellyfin.Server --configuration Release --output dist/jellyfin-server_"${version}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=false
|
||||
tar -czf jellyfin-server_"${version}"_portable.tar.gz -C dist jellyfin-server_"${version}"
|
||||
rm -rf dist/jellyfin-server_"${version}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv jellyfin[-_]*.tar.gz "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -37,7 +37,7 @@ mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
cp -a /tmp/control.orig debian/control
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -38,7 +38,7 @@ mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
cp -a /tmp/control.orig debian/control
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -38,7 +38,7 @@ mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
cp -a /tmp/control.orig debian/control
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -23,30 +23,30 @@ fi
|
||||
output_dir="dist/jellyfin-server_${version}"
|
||||
|
||||
# Build binary
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime win-x64 --output ${output_dir}/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
dotnet publish Jellyfin.Server --configuration Release --self-contained --runtime win-x64 --output "${output_dir}"/ -p:DebugSymbols=false -p:DebugType=none -p:UseAppHost=true
|
||||
|
||||
# Prepare addins
|
||||
addin_build_dir="$( mktemp -d )"
|
||||
wget ${NSSM_URL} -O ${addin_build_dir}/nssm.zip
|
||||
wget ${FFMPEG_URL} -O ${addin_build_dir}/jellyfin-ffmpeg.zip
|
||||
unzip ${addin_build_dir}/nssm.zip -d ${addin_build_dir}
|
||||
cp ${addin_build_dir}/${NSSM_VERSION}/win64/nssm.exe ${output_dir}/nssm.exe
|
||||
unzip ${addin_build_dir}/jellyfin-ffmpeg.zip -d ${addin_build_dir}/jellyfin-ffmpeg
|
||||
cp ${addin_build_dir}/jellyfin-ffmpeg/* ${output_dir}
|
||||
rm -rf ${addin_build_dir}
|
||||
wget ${NSSM_URL} -O "${addin_build_dir}"/nssm.zip
|
||||
wget ${FFMPEG_URL} -O "${addin_build_dir}"/jellyfin-ffmpeg.zip
|
||||
unzip "${addin_build_dir}"/nssm.zip -d "${addin_build_dir}"
|
||||
cp "${addin_build_dir}"/${NSSM_VERSION}/win64/nssm.exe "${output_dir}"/nssm.exe
|
||||
unzip "${addin_build_dir}"/jellyfin-ffmpeg.zip -d "${addin_build_dir}"/jellyfin-ffmpeg
|
||||
cp "${addin_build_dir}"/jellyfin-ffmpeg/* "${output_dir}"
|
||||
rm -rf "${addin_build_dir}"
|
||||
|
||||
# Create zip package
|
||||
pushd dist
|
||||
zip -qr jellyfin-server_${version}.portable.zip jellyfin-server_${version}
|
||||
zip -qr jellyfin-server_"${version}".portable.zip jellyfin-server_"${version}"
|
||||
popd
|
||||
rm -rf ${output_dir}
|
||||
rm -rf "${output_dir}"
|
||||
|
||||
# Move the artifacts out
|
||||
mkdir -p "${ARTIFACT_DIR}/"
|
||||
mv dist/jellyfin[-_]*.zip "${ARTIFACT_DIR}/"
|
||||
|
||||
if [[ ${IS_DOCKER} == YES ]]; then
|
||||
chown -Rc $(stat -c %u:%g "${ARTIFACT_DIR}") "${ARTIFACT_DIR}"
|
||||
chown -Rc "$(stat -c %u:%g "${ARTIFACT_DIR}")" "${ARTIFACT_DIR}"
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
Reference in New Issue
Block a user