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..79ad715 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 SteamCMD if present already +if [ ! -f /opt/steamcmd/steamcmd.sh ]; then + echo "SteamCMD not found. Installing..." + mkdir -p /opt/steamcmd && \ + cd /opt/steamcmd && \ + 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" +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 \