2022-10-28 01:51:24 +00:00
|
|
|
FROM ubuntu:22.04 AS sunshine-base
|
|
|
|
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
|
|
|
FROM sunshine-base as sunshine-build
|
|
|
|
|
|
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
RUN apt-get update -y \
|
|
|
|
&& apt-get install -y --no-install-recommends \
|
|
|
|
build-essential=12.9* \
|
|
|
|
cmake=3.22.1* \
|
|
|
|
libavdevice-dev=7:4.4.* \
|
|
|
|
libboost-filesystem-dev=1.74.0* \
|
|
|
|
libboost-log-dev=1.74.0* \
|
|
|
|
libboost-thread-dev=1.74.0* \
|
|
|
|
libcap-dev=1:2.44* \
|
2022-11-18 16:07:22 +00:00
|
|
|
libcurl4-openssl-dev=7.81.0* \
|
2022-10-28 01:51:24 +00:00
|
|
|
libdrm-dev=2.4.110* \
|
|
|
|
libevdev-dev=1.12.1* \
|
2022-12-11 22:46:19 +00:00
|
|
|
libnuma-dev=2.0.14* \
|
2022-10-28 01:51:24 +00:00
|
|
|
libopus-dev=1.3.1* \
|
2022-12-11 22:46:19 +00:00
|
|
|
libpulse-dev=1:15.99.1* \
|
2022-10-28 01:51:24 +00:00
|
|
|
libssl-dev=3.0.2* \
|
2022-12-11 22:46:19 +00:00
|
|
|
libva-dev=2.14.0* \
|
|
|
|
libvdpau-dev=1.4* \
|
2022-10-28 01:51:24 +00:00
|
|
|
libwayland-dev=1.20.0* \
|
|
|
|
libx11-dev=2:1.7.5* \
|
|
|
|
libxcb-shm0-dev=1.14* \
|
|
|
|
libxcb-xfixes0-dev=1.14* \
|
|
|
|
libxcb1-dev=1.14* \
|
|
|
|
libxfixes-dev=1:6.0.0* \
|
|
|
|
libxrandr-dev=2:1.5.2* \
|
|
|
|
libxtst-dev=2:1.2.3* \
|
2022-11-18 20:44:06 +00:00
|
|
|
nodejs=12.22.9* \
|
|
|
|
npm=8.5.1* \
|
2022-10-28 01:51:24 +00:00
|
|
|
nvidia-cuda-dev=11.5.1* \
|
|
|
|
nvidia-cuda-toolkit=11.5.1* \
|
|
|
|
&& apt-get clean \
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
# copy repository
|
|
|
|
WORKDIR /root/sunshine-build/
|
|
|
|
COPY . .
|
|
|
|
|
2022-11-18 20:44:06 +00:00
|
|
|
# setup npm and dependencies
|
|
|
|
WORKDIR /root/sunshine-build/src_assets/common/assets/web
|
|
|
|
RUN npm install
|
|
|
|
|
2022-10-28 01:51:24 +00:00
|
|
|
# setup build directory
|
|
|
|
WORKDIR /root/sunshine-build/build
|
|
|
|
|
|
|
|
# cmake and cpack
|
|
|
|
RUN cmake -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 \
|
|
|
|
/root/sunshine-build \
|
|
|
|
&& make -j "$(nproc)" \
|
|
|
|
&& cpack -G DEB
|
|
|
|
|
|
|
|
FROM sunshine-base as sunshine
|
|
|
|
|
|
|
|
# copy deb from builder
|
|
|
|
COPY --from=sunshine-build /root/sunshine-build/build/cpack_artifacts/Sunshine.deb /sunshine.deb
|
|
|
|
|
|
|
|
# install sunshine
|
|
|
|
RUN apt-get update -y \
|
|
|
|
&& apt-get install -y --no-install-recommends /sunshine.deb \
|
|
|
|
&& apt-get clean \
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
|
|
|
RUN groupadd -f -g "${PGID}" "${UNAME}" && \
|
|
|
|
useradd -lm -d ${HOME} -s /bin/bash -g "${PGID}" -G input -u "${PUID}" "${UNAME}" && \
|
|
|
|
mkdir -p ${HOME}/.config/sunshine && \
|
|
|
|
ln -s ${HOME}/.config/sunshine /config && \
|
|
|
|
chown -R ${UNAME} ${HOME}
|
|
|
|
|
|
|
|
USER ${UNAME}
|
|
|
|
WORKDIR ${HOME}
|
|
|
|
|
|
|
|
# entrypoint
|
|
|
|
ENTRYPOINT ["/usr/bin/sunshine"]
|