From 6dbd51159c6bdefaa2d9454400595d07e55ece47 Mon Sep 17 00:00:00 2001 From: Skylord123 Date: Tue, 24 Sep 2019 02:54:13 +0000 Subject: [PATCH] Container working --- Dockerfile | 44 ++++++++++++++++++++++++++ scripts/start-server.sh | 69 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 Dockerfile create mode 100644 scripts/start-server.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..df47678 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,44 @@ +FROM debian:stable-slim +FROM i386/debian:stretch-slim + +MAINTAINER ich777 + +RUN dpkg --add-architecture i386 && \ + apt-get update && apt-get install --no-install-recommends -y \ + ca-certificates libgcc1 libstdc++6 libssl1.1:i386 libstdc++6:i386 locales locales-all zlib1g:i386 libc6 libstdc++6 ca-certificates libgcc1 libstdc++6:i386 zlib1g:i386 curl file bzip2 gzip unzip libssl1.1:i386 libxrandr-dev:i386 libxi-dev:i386 libgl1-mesa-glx:i386 libxtst6:i386 libusb-1.0.0:i386 libxxf86vm1:i386 libglu1-mesa:i386 libopenal1:i386 libgtk2.0-0:i386 libsm6:i386 libdbus-glib-1-2:i386 libnm-glib4:i386 libnm-util2:i386 libudev-dev:i386 libudev-dev libpulse0 && \ + apt-get clean && \ + echo "LC_ALL=en_US.UTF-8" >> /etc/environment && \ + rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*; +RUN ln -s /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0 + +ENV LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8 + +ENV DATA_DIR="/serverdata" +ENV STEAMCMD_DIR="${DATA_DIR}/steamcmd" +ENV SERVER_DIR="${DATA_DIR}/serverfiles" +ENV GAME_ID="276060" +ENV GAME_NAME="svencoop" +ENV GAME_PARAMS="template" +ENV GAME_PORT=27015 +ENV VALIDATE="" +ENV UID=99 +ENV GID=100 +ENV USERNAME="" +ENV PASSWRD="" + +RUN mkdir $DATA_DIR +RUN mkdir $STEAMCMD_DIR +RUN mkdir $SERVER_DIR +RUN useradd -d $DATA_DIR -s /bin/bash --uid $UID --gid $GID steam +RUN chown -R steam $DATA_DIR + +RUN ulimit -n 2048 + +ADD /scripts/ /opt/scripts/ +RUN chmod -R 770 /opt/scripts/ +RUN chown -R steam /opt/scripts + +USER steam + +#Server Start +ENTRYPOINT ["/opt/scripts/start-server.sh"] diff --git a/scripts/start-server.sh b/scripts/start-server.sh new file mode 100644 index 0000000..0a5e8fc --- /dev/null +++ b/scripts/start-server.sh @@ -0,0 +1,69 @@ +#!/bin/bash +if [ ! -f ${STEAMCMD_DIR}/steamcmd.sh ]; then + echo "SteamCMD not found!" + wget -q -O ${STEAMCMD_DIR}/steamcmd_linux.tar.gz http://media.steampowered.com/client/steamcmd_linux.tar.gz + tar --directory ${STEAMCMD_DIR} -xvzf /serverdata/steamcmd/steamcmd_linux.tar.gz + rm ${STEAMCMD_DIR}/steamcmd_linux.tar.gz +fi + +echo "---Update SteamCMD---" +if [ "${USERNAME}" == "" ]; then + ${STEAMCMD_DIR}/steamcmd.sh \ + +login anonymous \ + +quit +else + ${STEAMCMD_DIR}/steamcmd.sh \ + +login ${USERNAME} ${PASSWRD} \ + +quit +fi + +echo "---Update Server---" +if [ "${USERNAME}" == "" ]; then + if [ "${VALIDATE}" == "true" ]; then + echo "---Validating installation---" + ${STEAMCMD_DIR}/steamcmd.sh \ + +login anonymous \ + +force_install_dir ${SERVER_DIR} \ + +app_update ${GAME_ID} validate \ + +quit + else + ${STEAMCMD_DIR}/steamcmd.sh \ + +login anonymous \ + +force_install_dir ${SERVER_DIR} \ + +app_update ${GAME_ID} \ + +quit + fi +else + if [ "${VALIDATE}" == "true" ]; then + echo "---Validating installation---" + ${STEAMCMD_DIR}/steamcmd.sh \ + +login ${USERNAME} ${PASSWRD} \ + +force_install_dir ${SERVER_DIR} \ + +app_update ${GAME_ID} validate \ + +quit + else + ${STEAMCMD_DIR}/steamcmd.sh \ + +login ${USERNAME} ${PASSWRD} \ + +force_install_dir ${SERVER_DIR} \ + +app_update ${GAME_ID} \ + +quit + fi +fi + +# echo "---Prepare Server---" +# if [ ! -d ${DATA_DIR}/.steam/sdk32 ]; then +# mkdir ${DATA_DIR}/.steam/sdk32 +# fi +# if [ ! -f ${SERVER_DIR}/hl2mp/cfg/server.cfg ]; then +# echo "---No server.cfg found, downloading...---" +# wget -q -O ${SERVER_DIR}/hl2mp/cfg/server.cfg https://raw.githubusercontent.com/ich777/docker-steamcmd-server/hl2dm/config/server.cfg +# else +# echo "---server.cfg found..." +# fi +# echo "---Please wait---" +# chmod -R 770 ${DATA_DIR} +echo "---Server ready---" + +echo "---Start Server---" +cd ${SERVER_DIR} +${SERVER_DIR}/svends_run ${GAME_PARAMS} -console -port ${GAME_PORT} \ No newline at end of file