Files
game-server/Dockerfile
bilal 5b59aea5c8 Add PipeWire runtime libraries for Steam UI.
Install libpipewire 0.3 (64/32-bit) required by steamui.so in headless container sessions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 00:51:49 +03:00

58 lines
2.5 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FROM ubuntu:22.04
# Отключаем интерактивные вопросы во время установки
ENV DEBIAN_FRONTEND=noninteractive
# 1. Добавляем 32-битную архитектуру для Steam и базовые графические зависимости
RUN dpkg --add-architecture i386 && \
apt-get update && apt-get install -y \
xvfb fluxbox dbus-x11 xauth xfonts-base x11-xserver-utils \
software-properties-common wget curl ca-certificates locales pciutils \
libcap2-bin libgomp1 mesa-utils \
libxcb-cursor0 libxcb-xinerama0 libxcb-xfixes0 libxcb-shape0 libxcb-randr0 libxcb-xtest0 \
libxcb1 libxcb-render0 libxcb-render-util0 libxcb-util1 libxcb-keysyms1 \
&& add-apt-repository multiverse \
&& apt-get update
# 2. Скачиваем оригинальный рабочий пакет Sunshine по вашей ссылке
# ВНИМАНИЕ: Замените маркер ниже на вашу ссылку из браузера, сохранив кавычки!
RUN wget "https://github.com/LizardByte/Sunshine/releases/download/v0.21.0/sunshine-ubuntu-22.04-amd64.deb" -O /tmp/sunshine.deb \
&& chmod +x /tmp/sunshine.deb
# 3. Устанавливаем скачанный пакет и Steam со всеми зависимостями
RUN apt-get update && \
echo "debconf steam/question select I AGREE" | debconf-set-selections \
&& apt-get install -y /tmp/sunshine.deb steam:i386 steam-devices \
libxtst6 libxtst6:i386 \
libxss1 libxss1:i386 \
libnss3 libnss3:i386 \
libxi6 libxi6:i386 \
libgtk2.0-0 libgtk2.0-0:i386 \
libglib2.0-0 libglib2.0-0:i386 \
libpipewire-0.3-0 libpipewire-0.3-0:i386 \
&& locale-gen en_US.UTF-8 \
&& rm -f /tmp/sunshine.deb \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 4. Скрипт очищает сессию, поднимает виртуальный экран, fluxbox и запускает Sunshine
RUN echo '#!/bin/bash\n\
rm -f /tmp/.X99-lock /tmp/.X11-unix/X99\n\
id steam >/dev/null 2>&1 || useradd -m -s /bin/bash steam\n\
mkdir -p /home/steam/.local/share/Steam /tmp/xdg-steam\n\
ln -sfn /home/steam/.local/share/Steam /home/steam/.steam\n\
chown -R steam:steam /home/steam /tmp/xdg-steam\n\
Xvfb :99 -ac -screen 0 1920x1080x24 &\n\
export DISPLAY=:99\n\
export HOME=/root\n\
export LANG=en_US.UTF-8\n\
export LC_ALL=en_US.UTF-8\n\
sleep 3\n\
fluxbox &\n\
sleep 2\n\
exec /usr/bin/sunshine' > /entrypoint.sh && chmod +x /entrypoint.sh \
&& chmod +x /entrypoint.sh
USER root
ENTRYPOINT ["/entrypoint.sh"]