build(distro): add debian bookworm package (#1455)
This commit is contained in:
173
docker/debian-bookworm.dockerfile
Normal file
173
docker/debian-bookworm.dockerfile
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
# syntax=docker/dockerfile:1.4
|
||||||
|
# artifacts: true
|
||||||
|
# platforms: linux/amd64,linux/arm64/v8
|
||||||
|
# platforms_pr: linux/amd64
|
||||||
|
# no-cache-filters: sunshine-base,artifacts,sunshine
|
||||||
|
ARG BASE=debian
|
||||||
|
ARG TAG=bookworm
|
||||||
|
FROM ${BASE}:${TAG} AS sunshine-base
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
FROM sunshine-base as sunshine-build
|
||||||
|
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
RUN echo "target_platform: ${TARGETPLATFORM}"
|
||||||
|
|
||||||
|
ARG BRANCH
|
||||||
|
ARG BUILD_VERSION
|
||||||
|
ARG COMMIT
|
||||||
|
# note: BUILD_VERSION may be blank
|
||||||
|
|
||||||
|
ENV BRANCH=${BRANCH}
|
||||||
|
ENV BUILD_VERSION=${BUILD_VERSION}
|
||||||
|
ENV COMMIT=${COMMIT}
|
||||||
|
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
# install dependencies
|
||||||
|
RUN <<_DEPS
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
apt-get update -y
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
cmake=3.25.* \
|
||||||
|
git \
|
||||||
|
libavdevice-dev \
|
||||||
|
libboost-filesystem-dev=1.74.* \
|
||||||
|
libboost-locale-dev=1.74.* \
|
||||||
|
libboost-log-dev=1.74.* \
|
||||||
|
libboost-program-options-dev=1.74.* \
|
||||||
|
libcap-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libdrm-dev \
|
||||||
|
libevdev-dev \
|
||||||
|
libnuma-dev \
|
||||||
|
libopus-dev \
|
||||||
|
libpulse-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libva-dev \
|
||||||
|
libvdpau-dev \
|
||||||
|
libwayland-dev \
|
||||||
|
libx11-dev \
|
||||||
|
libxcb-shm0-dev \
|
||||||
|
libxcb-xfixes0-dev \
|
||||||
|
libxcb1-dev \
|
||||||
|
libxfixes-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxtst-dev \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
wget
|
||||||
|
if [[ "${TARGETPLATFORM}" == 'linux/amd64' ]]; then
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
libmfx-dev
|
||||||
|
fi
|
||||||
|
apt-get clean
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
_DEPS
|
||||||
|
|
||||||
|
# install cuda
|
||||||
|
WORKDIR /build/cuda
|
||||||
|
# versions: https://developer.nvidia.com/cuda-toolkit-archive
|
||||||
|
ENV CUDA_VERSION="12.0.0"
|
||||||
|
ENV CUDA_BUILD="525.60.13"
|
||||||
|
# hadolint ignore=SC3010
|
||||||
|
RUN <<_INSTALL_CUDA
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
cuda_prefix="https://developer.download.nvidia.com/compute/cuda/"
|
||||||
|
cuda_suffix=""
|
||||||
|
if [[ "${TARGETPLATFORM}" == 'linux/arm64' ]]; then
|
||||||
|
cuda_suffix="_sbsa"
|
||||||
|
fi
|
||||||
|
url="${cuda_prefix}${CUDA_VERSION}/local_installers/cuda_${CUDA_VERSION}_${CUDA_BUILD}_linux${cuda_suffix}.run"
|
||||||
|
echo "cuda url: ${url}"
|
||||||
|
wget "$url" --progress=bar:force:noscroll -q --show-progress -O ./cuda.run
|
||||||
|
chmod a+x ./cuda.run
|
||||||
|
./cuda.run --silent --toolkit --toolkitpath=/build/cuda --no-opengl-libs --no-man-page --no-drm
|
||||||
|
rm ./cuda.run
|
||||||
|
_INSTALL_CUDA
|
||||||
|
|
||||||
|
# copy repository
|
||||||
|
WORKDIR /build/sunshine/
|
||||||
|
COPY --link .. .
|
||||||
|
|
||||||
|
# setup npm dependencies
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# setup build directory
|
||||||
|
WORKDIR /build/sunshine/build
|
||||||
|
|
||||||
|
# cmake and cpack
|
||||||
|
RUN <<_MAKE
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
cmake \
|
||||||
|
-DCMAKE_CUDA_COMPILER:PATH=/build/cuda/bin/nvcc \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DSUNSHINE_ASSETS_DIR=share/sunshine \
|
||||||
|
-DSUNSHINE_EXECUTABLE_PATH=/usr/bin/sunshine \
|
||||||
|
-DSUNSHINE_ENABLE_WAYLAND=ON \
|
||||||
|
-DSUNSHINE_ENABLE_X11=ON \
|
||||||
|
-DSUNSHINE_ENABLE_DRM=ON \
|
||||||
|
-DSUNSHINE_ENABLE_CUDA=ON \
|
||||||
|
/build/sunshine
|
||||||
|
make -j "$(nproc)"
|
||||||
|
cpack -G DEB
|
||||||
|
_MAKE
|
||||||
|
|
||||||
|
FROM scratch AS artifacts
|
||||||
|
ARG BASE
|
||||||
|
ARG TAG
|
||||||
|
ARG TARGETARCH
|
||||||
|
COPY --link --from=sunshine-build /build/sunshine/build/cpack_artifacts/Sunshine.deb /sunshine-${BASE}-${TAG}-${TARGETARCH}.deb
|
||||||
|
|
||||||
|
FROM sunshine-base as sunshine
|
||||||
|
|
||||||
|
# copy deb from builder
|
||||||
|
COPY --link --from=artifacts /sunshine*.deb /sunshine.deb
|
||||||
|
|
||||||
|
# install sunshine
|
||||||
|
RUN <<_INSTALL_SUNSHINE
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
apt-get update -y
|
||||||
|
apt-get install -y --no-install-recommends /sunshine.deb
|
||||||
|
apt-get clean
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
_INSTALL_SUNSHINE
|
||||||
|
|
||||||
|
# network setup
|
||||||
|
EXPOSE 47984-47990/tcp
|
||||||
|
EXPOSE 48010
|
||||||
|
EXPOSE 47998-48000/udp
|
||||||
|
|
||||||
|
# setup user
|
||||||
|
ARG PGID=1000
|
||||||
|
ENV PGID=${PGID}
|
||||||
|
ARG PUID=1000
|
||||||
|
ENV PUID=${PUID}
|
||||||
|
ENV TZ="UTC"
|
||||||
|
ARG UNAME=lizard
|
||||||
|
ENV UNAME=${UNAME}
|
||||||
|
|
||||||
|
ENV HOME=/home/$UNAME
|
||||||
|
|
||||||
|
# setup user
|
||||||
|
RUN <<_SETUP_USER
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
groupadd -f -g "${PGID}" "${UNAME}"
|
||||||
|
useradd -lm -d ${HOME} -s /bin/bash -g "${PGID}" -u "${PUID}" "${UNAME}"
|
||||||
|
mkdir -p ${HOME}/.config/sunshine
|
||||||
|
ln -s ${HOME}/.config/sunshine /config
|
||||||
|
chown -R ${UNAME} ${HOME}
|
||||||
|
_SETUP_USER
|
||||||
|
|
||||||
|
USER ${UNAME}
|
||||||
|
WORKDIR ${HOME}
|
||||||
|
|
||||||
|
# entrypoint
|
||||||
|
ENTRYPOINT ["/usr/bin/sunshine"]
|
||||||
@@ -39,6 +39,7 @@ CUDA is used for NVFBC capture.
|
|||||||
sunshine.AppImage 11.8.0 450.80.02 50;52;60;61;62;70;75;80;86;90;35
|
sunshine.AppImage 11.8.0 450.80.02 50;52;60;61;62;70;75;80;86;90;35
|
||||||
sunshine.pkg.tar.zst 11.8.0 450.80.02 50;52;60;61;62;70;75;80;86;90;35
|
sunshine.pkg.tar.zst 11.8.0 450.80.02 50;52;60;61;62;70;75;80;86;90;35
|
||||||
sunshine_{arch}.flatpak 12.0.0 525.60.13 50;52;60;61;62;70;75;80;86;90
|
sunshine_{arch}.flatpak 12.0.0 525.60.13 50;52;60;61;62;70;75;80;86;90
|
||||||
|
sunshine-debian-bookworm-{arch}.deb 12.0.0 525.60.13 50;52;60;61;62;70;75;80;86;90
|
||||||
sunshine-debian-bullseye-{arch}.deb 11.8.0 450.80.02 50;52;60;61;62;70;75;80;86;90;35
|
sunshine-debian-bullseye-{arch}.deb 11.8.0 450.80.02 50;52;60;61;62;70;75;80;86;90;35
|
||||||
sunshine-fedora-37-{arch}.rpm 12.0.0 525.60.13 50;52;60;61;62;70;75;80;86;90
|
sunshine-fedora-37-{arch}.rpm 12.0.0 525.60.13 50;52;60;61;62;70;75;80;86;90
|
||||||
sunshine-fedora-38-{arch}.rpm unavailable unavailable none
|
sunshine-fedora-38-{arch}.rpm unavailable unavailable none
|
||||||
|
|||||||
@@ -4,9 +4,10 @@ Linux
|
|||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Debian Bullseye
|
Debian Bullseye/Bookworm
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
End of Life: TBD
|
End of Life (Bullseye): July, 2024
|
||||||
|
End of Life (Bookworm): TBD
|
||||||
|
|
||||||
Install Requirements
|
Install Requirements
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@@ -43,9 +44,8 @@ Install Requirements
|
|||||||
nvidia-cuda-dev \ # Cuda, NvFBC
|
nvidia-cuda-dev \ # Cuda, NvFBC
|
||||||
nvidia-cuda-toolkit # Cuda, NvFBC
|
nvidia-cuda-toolkit # Cuda, NvFBC
|
||||||
|
|
||||||
Fedora 36, 37
|
Fedora 37, 38
|
||||||
^^^^^^^^^^^^^
|
^^^^^^^^^^^^^
|
||||||
End of Life: TBD
|
|
||||||
|
|
||||||
Install Requirements
|
Install Requirements
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@@ -181,7 +181,7 @@ If the version of CUDA available from your distro is not adequate, manually inst
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run \
|
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run \
|
||||||
--progress=bar:force:noscroll -q --show-progress -O ./cuda.run
|
--progress=bar:force:noscroll -q --show-progress -O ./cuda.run
|
||||||
chmod a+x ./cuda.run
|
chmod a+x ./cuda.run
|
||||||
./cuda.run --silent --toolkit --toolkitpath=/usr --no-opengl-libs --no-man-page --no-drm
|
./cuda.run --silent --toolkit --toolkitpath=/usr --no-opengl-libs --no-man-page --no-drm
|
||||||
|
|||||||
Reference in New Issue
Block a user