This commit is contained in:
2023-11-17 06:23:29 -08:00
parent 46cd17b8f6
commit fbbf147c5f
3 changed files with 59 additions and 61 deletions

View File

@@ -1,15 +1,13 @@
FROM ich777/debian-baseimage:bullseye_amd64 FROM fithwum/base-image:debian-bullseye
LABEL maintainer "fithwum"
LABEL org.opencontainers.image.authors="admin@minenet.at" RUN apt-get update \
LABEL org.opencontainers.image.source="https://github.com/ich777/docker-steamcmd-server" && apt-get -y install --no-install-recommends lib32gcc-s1 lib32stdc++6 lib32z1 \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update && \
apt-get -y install --no-install-recommends lib32gcc-s1 lib32stdc++6 lib32z1 && \
rm -rf /var/lib/apt/lists/*
ENV DATA_DIR="/serverdata" ENV DATA_DIR="/serverdata"
ENV STEAMCMD_DIR="${DATA_DIR}/steamcmd" ENV STEAMCMD_DIR="$DATA_DIR/steamcmd"
ENV SERVER_DIR="${DATA_DIR}/serverfiles" ENV SERVER_DIR="$DATA_DIR/serverfiles"
ENV GAME_ID="template" ENV GAME_ID="template"
ENV GAME_NAME="template" ENV GAME_NAME="template"
ENV GAME_PARAMS="template" ENV GAME_PARAMS="template"
@@ -23,15 +21,15 @@ ENV PASSWRD=""
ENV USER="steam" ENV USER="steam"
ENV DATA_PERM=770 ENV DATA_PERM=770
RUN mkdir $DATA_DIR && \ RUN mkdir $DATA_DIR \
mkdir $STEAMCMD_DIR && \ && mkdir $STEAMCMD_DIR \
mkdir $SERVER_DIR && \ && mkdir $SERVER_DIR \
useradd -d $DATA_DIR -s /bin/bash $USER && \ && useradd -d $DATA_DIR -s /bin/bash $USER \
chown -R $USER $DATA_DIR && \ && chown -R $USER $DATA_DIR \
ulimit -n 2048 && ulimit -n 2048
ADD /scripts/ /opt/scripts/ ADD /scripts/ /opt/scripts/
RUN chmod -R 770 /opt/scripts/ RUN chmod -R 770 /opt/scripts/
#Server Start #Server Start
ENTRYPOINT ["/opt/scripts/start.sh"] ENTRYPOINT ["/opt/scripts/start.sh"]

View File

@@ -1,68 +1,68 @@
#!/bin/bash #!/bin/bash
if [ ! -f ${STEAMCMD_DIR}/steamcmd.sh ]; then if [ ! -f $STEAMCMD_DIR/steamcmd.sh ]; then
echo "SteamCMD not found!" echo "SteamCMD not found!"
wget -q -O ${STEAMCMD_DIR}/steamcmd_linux.tar.gz http://media.steampowered.com/client/steamcmd_linux.tar.gz 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 tar --directory $STEAMCMD_DIR -xvzf /serverdata/steamcmd/steamcmd_linux.tar.gz
rm ${STEAMCMD_DIR}/steamcmd_linux.tar.gz rm $STEAMCMD_DIR/steamcmd_linux.tar.gz
fi fi
echo "---Update SteamCMD---" echo "---Update SteamCMD---"
if [ "${USERNAME}" == "" ]; then if [ "$USERNAME" == "" ]; then
${STEAMCMD_DIR}/steamcmd.sh \ $STEAMCMD_DIR/steamcmd.sh \
+login anonymous \ +login anonymous \
+quit +quit
else else
${STEAMCMD_DIR}/steamcmd.sh \ $STEAMCMD_DIR/steamcmd.sh \
+login ${USERNAME} ${PASSWRD} \ +login $USERNAME $PASSWRD \
+quit +quit
fi fi
echo "---Update Server---" echo "---Update Server---"
if [ "${USERNAME}" == "" ]; then if [ "$USERNAME" == "" ]; then
if [ "${VALIDATE}" == "true" ]; then if [ "$VALIDATE" == "true" ]; then
echo "---Validating installation---" echo "---Validating installation---"
${STEAMCMD_DIR}/steamcmd.sh \ $STEAMCMD_DIR/steamcmd.sh \
+force_install_dir ${SERVER_DIR} \ +force_install_dir $SERVER_DIR \
+login anonymous \ +login anonymous \
+app_update ${GAME_ID} validate \ +app_update $GAME_ID validate \
+quit +quit
else else
${STEAMCMD_DIR}/steamcmd.sh \ $STEAMCMD_DIR/steamcmd.sh \
+force_install_dir ${SERVER_DIR} \ +force_install_dir $SERVER_DIR \
+login anonymous \ +login anonymous \
+app_update ${GAME_ID} \ +app_update $GAME_ID \
+quit +quit
fi fi
else else
if [ "${VALIDATE}" == "true" ]; then if [ "$VALIDATE" == "true" ]; then
echo "---Validating installation---" echo "---Validating installation---"
${STEAMCMD_DIR}/steamcmd.sh \ $STEAMCMD_DIR/steamcmd.sh \
+force_install_dir ${SERVER_DIR} \ +force_install_dir $SERVER_DIR \
+login ${USERNAME} ${PASSWRD} \ +login $USERNAME $PASSWRD \
+app_update ${GAME_ID} validate \ +app_update $GAME_ID validate \
+quit +quit
else else
${STEAMCMD_DIR}/steamcmd.sh \ $STEAMCMD_DIR/steamcmd.sh \
+force_install_dir ${SERVER_DIR} \ +force_install_dir $SERVER_DIR \
+login ${USERNAME} ${PASSWRD} \ +login $USERNAME $PASSWRD \
+app_update ${GAME_ID} \ +app_update $GAME_ID \
+quit +quit
fi fi
fi fi
echo "---Prepare Server---" echo "---Prepare Server---"
if [ ! -f ${DATA_DIR}/.steam/sdk32/steamclient.so ]; then if [ ! -f $DATA_DIR/.steam/sdk32/steamclient.so ]; then
if [ ! -d ${DATA_DIR}/.steam ]; then if [ ! -d $DATA_DIR/.steam ]; then
mkdir ${DATA_DIR}/.steam mkdir $DATA_DIR/.steam
fi fi
if [ ! -d ${DATA_DIR}/.steam/sdk32 ]; then if [ ! -d $DATA_DIR/.steam/sdk32 ]; then
mkdir ${DATA_DIR}/.steam/sdk32 mkdir $DATA_DIR/.steam/sdk32
fi fi
cp -R ${STEAMCMD_DIR}/linux32/* ${DATA_DIR}/.steam/sdk32/ cp -R $STEAMCMD_DIR/linux32/* $DATA_DIR/.steam/sdk32/
fi fi
chmod -R ${DATA_PERM} ${DATA_DIR} chmod -R $DATA_PERM $DATA_DIR
echo "---Server ready---" echo "---Server ready---"
echo "---Start Server---" echo "---Start Server---"
cd ${SERVER_DIR} cd $SERVER_DIR
${SERVER_DIR}/srcds_run -game ${GAME_NAME} ${GAME_PARAMS} -console +port ${GAME_PORT} $SERVER_DIR/srcds_run -game $GAME_NAME $GAME_PARAMS -console +port $GAME_PORT

View File

@@ -1,11 +1,11 @@
#!/bin/bash #!/bin/bash
echo "---Ensuring UID: ${UID} matches user---" echo "---Ensuring UID: $UID matches user---"
usermod -u ${UID} ${USER} usermod -u $UID $USER
echo "---Ensuring GID: ${GID} matches user---" echo "---Ensuring GID: $GID matches user---"
groupmod -g ${GID} ${USER} > /dev/null 2>&1 ||: groupmod -g $GID $USER > /dev/null 2>&1 ||:
usermod -g ${GID} ${USER} usermod -g $GID $USER
echo "---Setting umask to ${UMASK}---" echo "---Setting umask to $UMASK---"
umask ${UMASK} umask $UMASK
echo "---Checking for optional scripts---" echo "---Checking for optional scripts---"
cp -f /opt/custom/user.sh /opt/scripts/start-user.sh > /dev/null 2>&1 ||: cp -f /opt/custom/user.sh /opt/scripts/start-user.sh > /dev/null 2>&1 ||:
@@ -20,9 +20,9 @@ else
fi fi
echo "---Taking ownership of data...---" echo "---Taking ownership of data...---"
chown -R root:${GID} /opt/scripts chown -R root:$GID /opt/scripts
chmod -R 750 /opt/scripts chmod -R 750 /opt/scripts
chown -R ${UID}:${GID} ${DATA_DIR} chown -R $UID:$GID $DATA_DIR
echo "---Starting...---" echo "---Starting...---"
term_handler() { term_handler() {
@@ -32,10 +32,10 @@ term_handler() {
} }
trap 'kill ${!}; term_handler' SIGTERM trap 'kill ${!}; term_handler' SIGTERM
su ${USER} -c "/opt/scripts/start-server.sh" & su $USER -c "/opt/scripts/start-server.sh" &
killpid="$!" killpid="$!"
while true while true
do do
wait $killpid wait $killpid
exit 0; exit 0;
done done