diff --git a/.github/workflows/steamcmd.yml b/.github/workflows/steamcmd.yml index 9221e31..9b3ed3f 100644 --- a/.github/workflows/steamcmd.yml +++ b/.github/workflows/steamcmd.yml @@ -19,7 +19,7 @@ jobs: - debian - ubuntu - dotnet - + - proton steps: - uses: actions/checkout@v3 - uses: docker/setup-buildx-action@v2 diff --git a/README.md b/README.md index 75f0684..67837d9 100644 --- a/README.md +++ b/README.md @@ -223,6 +223,8 @@ is tagged correctly. * `ghcr.io/parkervcp/steamcmd:debian` * [`SteamCMD Debian Dotnet`](/steamcmd/dotnet) * `ghcr.io/parkervcp/steamcmd:dotnet` +* [`SteamCMD Proton`](/steamcmd/proton) + * `ghcr.io/parkervcp/steamcmd:proton` * [`SteamCMD Ubuntu latest LTS`](/steamcmd/ubuntu) * `ghcr.io/parkervcp/steamcmd:ubuntu` diff --git a/steamcmd/entrypoint.sh b/steamcmd/entrypoint.sh index 153b869..df10978 100644 --- a/steamcmd/entrypoint.sh +++ b/steamcmd/entrypoint.sh @@ -33,10 +33,14 @@ export TZ INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') export INTERNAL_IP +# Set environment for Steam Proton +mkdir -p /home/container/.steam/steam/steamapps/compatdata/${SRCDS_APPID} +export STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/container/.steam/steam" +export STEAM_COMPAT_DATA_PATH="/home/container/.steam/steam/steamapps/compatdata/${SRCDS_APPID}" + # Switch to the container's working directory cd /home/container || exit 1 - ## just in case someone removed the defaults. if [ "${STEAM_USER}" == "" ]; then echo -e "steam user is not set.\n" diff --git a/steamcmd/proton/Dockerfile b/steamcmd/proton/Dockerfile new file mode 100644 index 0000000..b7aa6b8 --- /dev/null +++ b/steamcmd/proton/Dockerfile @@ -0,0 +1,37 @@ +# --------------------------------------------- +# Generic Wine image with Steam support +# --------------------------------------------- +FROM debian:bullseye-slim + +LABEL author="Torsten Widmann" maintainer="info@goover.de" + +## install required packages +RUN dpkg --add-architecture i386 +RUN apt update +RUN apt install -y --no-install-recommends wget iproute2 gnupg2 software-properties-common libntlm0 winbind xvfb xauth python3 libncurses5-dev:i386 libncurses6 dbus libgdiplus lib32gcc-s1 +RUN apt install -y alsa-tools libpulse0 pulseaudio libpulse-dev libasound2 libao-common gnutls-bin gnupg locales numactl cabextract curl +RUN useradd -d /home/container -m container + +# Download Proton GE +RUN curl -sLOJ $(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep browser_download_url | cut -d\" -f4 | egrep .tar.gz) +RUN tar -xzf GE-Proton*.tar.gz -C /usr/local/bin/ --strip-components=1 +RUN rm GE-Proton*.* + +# Proton Fix machine-id +RUN rm -f /etc/machine-id +RUN dbus-uuidgen --ensure=/etc/machine-id +RUN rm /var/lib/dbus/machine-id +RUN dbus-uuidgen --ensure + +## install rcon +RUN cd /tmp/ \ + && curl -sSL https://github.com/gorcon/rcon-cli/releases/download/v0.10.2/rcon-0.10.2-amd64_linux.tar.gz > rcon.tar.gz \ + && tar xvf rcon.tar.gz \ + && mv rcon-0.10.2-amd64_linux/rcon /usr/local/bin/ + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] \ No newline at end of file