|
@@ -4,19 +4,147 @@
|
|
|
# Versions
|
|
# Versions
|
|
|
# =============================================================================
|
|
# =============================================================================
|
|
|
|
|
|
|
|
-ARG SUNSHINE_VERSION=v2025.924.154138
|
|
|
|
|
-
|
|
|
|
|
# Update these values whenever the NVIDIA GPU Operator driver changes.
|
|
# Update these values whenever the NVIDIA GPU Operator driver changes.
|
|
|
ARG NVIDIA_DRIVER_BRANCH=580
|
|
ARG NVIDIA_DRIVER_BRANCH=580
|
|
|
ARG NVIDIA_DRIVER_VERSION=580.126.20
|
|
ARG NVIDIA_DRIVER_VERSION=580.126.20
|
|
|
ARG NVIDIA_DRIVER_PACKAGE_VERSION=580.126.20-1ubuntu1
|
|
ARG NVIDIA_DRIVER_PACKAGE_VERSION=580.126.20-1ubuntu1
|
|
|
|
|
|
|
|
|
|
+ARG SUNSHINE_REF=0784774
|
|
|
|
|
+ARG BUILD_DEPS_VERSION=v2026.724.203728
|
|
|
|
|
+ARG NV_CODEC_HEADERS_VERSION=n13.0.19.1
|
|
|
|
|
|
|
|
-# =============================================================================
|
|
|
|
|
-# Sunshine package source
|
|
|
|
|
-# =============================================================================
|
|
|
|
|
|
|
+# ============================================================================
|
|
|
|
|
+# Build du FFmpeg utilisé par Sunshine
|
|
|
|
|
+# nv-codec-headers volontairement limité à NVENC API 13.0
|
|
|
|
|
+# ============================================================================
|
|
|
|
|
+FROM docker.io/library/ubuntu:24.04 AS ffmpeg-build
|
|
|
|
|
+
|
|
|
|
|
+ARG BUILD_DEPS_VERSION
|
|
|
|
|
+ARG NV_CODEC_HEADERS_VERSION
|
|
|
|
|
+
|
|
|
|
|
+ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
+
|
|
|
|
|
+RUN apt-get update && \
|
|
|
|
|
+ apt-get install -y --no-install-recommends \
|
|
|
|
|
+ autoconf \
|
|
|
|
|
+ automake \
|
|
|
|
|
+ build-essential \
|
|
|
|
|
+ ca-certificates \
|
|
|
|
|
+ cmake \
|
|
|
|
|
+ git \
|
|
|
|
|
+ libass-dev \
|
|
|
|
|
+ libfreetype6-dev \
|
|
|
|
|
+ libgnutls28-dev \
|
|
|
|
|
+ libmp3lame-dev \
|
|
|
|
|
+ libnuma-dev \
|
|
|
|
|
+ libopus-dev \
|
|
|
|
|
+ libsdl2-dev \
|
|
|
|
|
+ libtool \
|
|
|
|
|
+ libvorbis-dev \
|
|
|
|
|
+ libxcb1-dev \
|
|
|
|
|
+ libxcb-shm0-dev \
|
|
|
|
|
+ libxcb-xfixes0-dev \
|
|
|
|
|
+ make \
|
|
|
|
|
+ meson \
|
|
|
|
|
+ nasm \
|
|
|
|
|
+ ninja-build \
|
|
|
|
|
+ pkg-config \
|
|
|
|
|
+ texinfo \
|
|
|
|
|
+ wget \
|
|
|
|
|
+ zlib1g-dev && \
|
|
|
|
|
+ rm -rf /var/lib/apt/lists/*
|
|
|
|
|
+
|
|
|
|
|
+RUN git clone \
|
|
|
|
|
+ --branch "${BUILD_DEPS_VERSION}" \
|
|
|
|
|
+ --depth 1 \
|
|
|
|
|
+ --recurse-submodules \
|
|
|
|
|
+ https://github.com/LizardByte/build-deps.git \
|
|
|
|
|
+ /src/build-deps
|
|
|
|
|
+
|
|
|
|
|
+# Le point important :
|
|
|
|
|
+# on remplace les nv-codec-headers utilisés pour compiler FFmpeg
|
|
|
|
|
+# par la dernière release API 13.0.
|
|
|
|
|
+RUN rm -rf /src/build-deps/third-party/FFmpeg/nv-codec-headers && \
|
|
|
|
|
+ git clone \
|
|
|
|
|
+ --branch "${NV_CODEC_HEADERS_VERSION}" \
|
|
|
|
|
+ --depth 1 \
|
|
|
|
|
+ https://github.com/FFmpeg/nv-codec-headers.git \
|
|
|
|
|
+ /src/build-deps/third-party/FFmpeg/nv-codec-headers
|
|
|
|
|
+
|
|
|
|
|
+RUN cmake \
|
|
|
|
|
+ -S /src/build-deps \
|
|
|
|
|
+ -B /src/build-deps/build \
|
|
|
|
|
+ -G "Unix Makefiles" \
|
|
|
|
|
+ -DCMAKE_BUILD_TYPE=Release \
|
|
|
|
|
+ -DCMAKE_INSTALL_PREFIX=/opt/build-deps \
|
|
|
|
|
+ -DBUILD_ALL=OFF \
|
|
|
|
|
+ -DBUILD_FFMPEG=ON \
|
|
|
|
|
+ -DBUILD_FFMPEG_NV_CODEC_HEADERS=ON \
|
|
|
|
|
+ -DBUILD_FFMPEG_CUDA_LLVM=OFF && \
|
|
|
|
|
+ cmake --build /src/build-deps/build --parallel "$(nproc)" && \
|
|
|
|
|
+ cmake --install /src/build-deps/build
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+# ============================================================================
|
|
|
|
|
+# Build de Sunshine avec notre FFmpeg
|
|
|
|
|
+# ============================================================================
|
|
|
|
|
+FROM docker.io/library/ubuntu:24.04 AS sunshine-build
|
|
|
|
|
+
|
|
|
|
|
+ARG SUNSHINE_REF
|
|
|
|
|
+
|
|
|
|
|
+ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
+
|
|
|
|
|
+RUN apt-get update && \
|
|
|
|
|
+ apt-get install -y --no-install-recommends \
|
|
|
|
|
+ ca-certificates \
|
|
|
|
|
+ git && \
|
|
|
|
|
+ rm -rf /var/lib/apt/lists/*
|
|
|
|
|
+
|
|
|
|
|
+RUN git clone \
|
|
|
|
|
+ --filter=blob:none \
|
|
|
|
|
+ https://github.com/LizardByte/Sunshine.git \
|
|
|
|
|
+ /src/sunshine && \
|
|
|
|
|
+ cd /src/sunshine && \
|
|
|
|
|
+ git checkout "${SUNSHINE_REF}" && \
|
|
|
|
|
+ git submodule update --init --recursive --depth 1
|
|
|
|
|
+
|
|
|
|
|
+# Installation des dépendances de compilation de Sunshine.
|
|
|
|
|
+# --skip-cuda désactive NVFBC/CUDA dans Sunshine, PAS NVENC via FFmpeg.
|
|
|
|
|
+RUN cd /src/sunshine && \
|
|
|
|
|
+ ./scripts/linux_build.sh \
|
|
|
|
|
+ --sudo-off \
|
|
|
|
|
+ --skip-cuda \
|
|
|
|
|
+ --step=deps
|
|
|
|
|
+
|
|
|
|
|
+# Remplacement du FFmpeg précompilé de LizardByte par le nôtre.
|
|
|
|
|
+COPY --from=ffmpeg-build /opt/build-deps/ffmpeg /tmp/custom-ffmpeg
|
|
|
|
|
+
|
|
|
|
|
+RUN rm -rf \
|
|
|
|
|
+ /src/sunshine/third-party/build-deps/ffmpeg/Linux-x86_64 && \
|
|
|
|
|
+ mkdir -p \
|
|
|
|
|
+ /src/sunshine/third-party/build-deps/ffmpeg/Linux-x86_64 && \
|
|
|
|
|
+ cp -a \
|
|
|
|
|
+ /tmp/custom-ffmpeg/. \
|
|
|
|
|
+ /src/sunshine/third-party/build-deps/ffmpeg/Linux-x86_64/
|
|
|
|
|
+
|
|
|
|
|
+# Configuration + compilation + création du .deb
|
|
|
|
|
+RUN cd /src/sunshine && \
|
|
|
|
|
+ ./scripts/linux_build.sh \
|
|
|
|
|
+ --sudo-off \
|
|
|
|
|
+ --skip-cuda \
|
|
|
|
|
+ --step=cmake && \
|
|
|
|
|
+ ./scripts/linux_build.sh \
|
|
|
|
|
+ --sudo-off \
|
|
|
|
|
+ --skip-cuda \
|
|
|
|
|
+ --step=build && \
|
|
|
|
|
+ ./scripts/linux_build.sh \
|
|
|
|
|
+ --sudo-off \
|
|
|
|
|
+ --skip-cuda \
|
|
|
|
|
+ --step=package && \
|
|
|
|
|
+ SUNSHINE_DEB="$(find build -maxdepth 1 -type f -name '*.deb' | head -n 1)" && \
|
|
|
|
|
+ test -n "${SUNSHINE_DEB}" && \
|
|
|
|
|
+ cp "${SUNSHINE_DEB}" /sunshine.deb
|
|
|
|
|
|
|
|
-FROM ghcr.io/lizardbyte/sunshine:${SUNSHINE_VERSION}-ubuntu-24.04 AS sunshine
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# =============================================================================
|
|
# =============================================================================
|
|
@@ -287,7 +415,7 @@ EOF
|
|
|
# Sunshine
|
|
# Sunshine
|
|
|
# =============================================================================
|
|
# =============================================================================
|
|
|
|
|
|
|
|
-COPY --from=sunshine /sunshine.deb /tmp/sunshine.deb
|
|
|
|
|
|
|
+COPY --from=sunshine-build /sunshine.deb /tmp/sunshine.deb
|
|
|
|
|
|
|
|
RUN apt-get update \
|
|
RUN apt-get update \
|
|
|
&& apt-get install --no-install-recommends -y \
|
|
&& apt-get install --no-install-recommends -y \
|