From 1a6df639f5c2af4be5ce6759a9e17f441a7d6c2d Mon Sep 17 00:00:00 2001 From: EvilOlaf Date: Wed, 26 Nov 2025 08:41:30 +0100 Subject: [PATCH 1/3] move steamcmd from image to runtime --- .dockerignore | 3 +++ .gitignore | 1 + Dockerfile | 6 ++---- docker-compose.yml | 1 + start-server.sh | 15 ++++++++++++++- 5 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..45faad5 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +# .dockerignore +scumserver-data +steamcmd diff --git a/.gitignore b/.gitignore index ac241bf..ef8b7c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ scumserver-data/ +steamcmd/ diff --git a/Dockerfile b/Dockerfile index de03d59..a1666e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,19 +22,17 @@ ENV WINEDEBUG -all ENV WINEARCH win64 ENV WINEPREFIX /opt/wine64 ENV XDG_RUNTIME_DIR /tmp +ENV PATH=/opt/steamcmd:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUN wineboot --init -RUN mkdir -p /opt/steamcmd && cd /opt/steamcmd && wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && tar -xvzf steamcmd_linux.tar.gz -ENV PATH=/opt/steamcmd:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - # scum server run script COPY start-server.sh /opt/start-server.sh RUN chmod +x /opt/start-server.sh # cleanup RUN apt-get clean -RUN rm /opt/steamcmd/steamcmd_linux.tar.gz +RUN rm -rf /var/lib/apt/lists/* EXPOSE 27020/udp EXPOSE 27015/udp diff --git a/docker-compose.yml b/docker-compose.yml index ae03c4a..51cad11 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,4 +16,5 @@ services: - "27015:27015/tcp" volumes: - ./scumserver-data:/opt/scumserver + - ./steamcmd:/opt/steamcmd restart: unless-stopped diff --git a/start-server.sh b/start-server.sh index 2f52a23..0064a38 100644 --- a/start-server.sh +++ b/start-server.sh @@ -1,7 +1,20 @@ #!/bin/bash set -e -echo "Installing/updating steamcmd and SCUM dedicated server..." +# skip download of steamdcmd if it is there already +if [ ! -f /opt/steamcmd/steamcmd.sh ]; then + echo "SteamCMD not found. Installing..." + mkdir -p /opt/steamcmd && \ + cd /opt/steamcmd && \ + wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && \ + tar -xvzf steamcmd_linux.tar.gz && \ + rm /opt/steamcmd/steamcmd_linux.tar.gz && \ + echo "SteamCMD successfully installed" +else + echo "SteamCMD found, skipping installation..." +fi + +echo "Update SteamCMD and SCUM dedicated server..." /opt/steamcmd/steamcmd.sh +@sSteamCmdForcePlatformType windows \ +force_install_dir /opt/scumserver \ +login anonymous \ From 400030cc80cf610e396106a84bbaa6300b125249 Mon Sep 17 00:00:00 2001 From: EvilOlaf Date: Wed, 26 Nov 2025 08:50:15 +0100 Subject: [PATCH 2/3] fix typo --- start-server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start-server.sh b/start-server.sh index 0064a38..00dcdc6 100644 --- a/start-server.sh +++ b/start-server.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e -# skip download of steamdcmd if it is there already +# skip download of SteamCMD if present already if [ ! -f /opt/steamcmd/steamcmd.sh ]; then echo "SteamCMD not found. Installing..." mkdir -p /opt/steamcmd && \ From a09ce936e1840e72bbc1768d017746b6948225b3 Mon Sep 17 00:00:00 2001 From: EvilOlaf Date: Wed, 26 Nov 2025 08:55:58 +0100 Subject: [PATCH 3/3] add wget failsafe switches --- start-server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start-server.sh b/start-server.sh index 00dcdc6..79ad715 100644 --- a/start-server.sh +++ b/start-server.sh @@ -6,7 +6,7 @@ if [ ! -f /opt/steamcmd/steamcmd.sh ]; then echo "SteamCMD not found. Installing..." mkdir -p /opt/steamcmd && \ cd /opt/steamcmd && \ - wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && \ + wget --timeout=30 --tries=3 https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && \ tar -xvzf steamcmd_linux.tar.gz && \ rm /opt/steamcmd/steamcmd_linux.tar.gz && \ echo "SteamCMD successfully installed"