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"
LABEL org.opencontainers.image.source="https://github.com/ich777/docker-steamcmd-server"
RUN apt-get update && \
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 STEAMCMD_DIR="${DATA_DIR}/steamcmd"
ENV SERVER_DIR="${DATA_DIR}/serverfiles"
ENV STEAMCMD_DIR="$DATA_DIR/steamcmd"
ENV SERVER_DIR="$DATA_DIR/serverfiles"
ENV GAME_ID="template"
ENV GAME_NAME="template"
ENV GAME_PARAMS="template"
@@ -23,15 +21,15 @@ ENV PASSWRD=""
ENV USER="steam"
ENV DATA_PERM=770
RUN mkdir $DATA_DIR && \
mkdir $STEAMCMD_DIR && \
mkdir $SERVER_DIR && \
useradd -d $DATA_DIR -s /bin/bash $USER && \
chown -R $USER $DATA_DIR && \
ulimit -n 2048
RUN mkdir $DATA_DIR \
&& mkdir $STEAMCMD_DIR \
&& mkdir $SERVER_DIR \
&& useradd -d $DATA_DIR -s /bin/bash $USER \
&& chown -R $USER $DATA_DIR \
&& ulimit -n 2048
ADD /scripts/ /opt/scripts/
RUN chmod -R 770 /opt/scripts/
#Server Start
ENTRYPOINT ["/opt/scripts/start.sh"]
ENTRYPOINT ["/opt/scripts/start.sh"]

View File

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

View File

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