Merge branch 'develop'
This commit is contained in:
		
							
								
								
									
										14
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Dockerfile
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
FROM debian:buster-slim as lgsm
 | 
					FROM debian:12-slim as lgsm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Const \\ Overwrite Env \\ Configs possible \\ Configs needed 
 | 
					# Const \\ Overwrite Env \\ Configs possible \\ Configs needed 
 | 
				
			||||||
# C.UTF-8 -> en_US.UTF-8
 | 
					# C.UTF-8 -> en_US.UTF-8
 | 
				
			||||||
@@ -8,12 +8,11 @@ ENV STEAM_PATH="/home/steam" \
 | 
				
			|||||||
	GROUP_ID=10000 \
 | 
						GROUP_ID=10000 \
 | 
				
			||||||
	USER_ID=10000 \
 | 
						USER_ID=10000 \
 | 
				
			||||||
	DOCKER_USER=steam \
 | 
						DOCKER_USER=steam \
 | 
				
			||||||
	SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-linux-amd64 \
 | 
						SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.2.28/supercronic-linux-amd64 \
 | 
				
			||||||
	SUPERCRONIC=supercronic-linux-amd64 \
 | 
						SUPERCRONIC=supercronic-linux-amd64 \
 | 
				
			||||||
	SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \
 | 
						SUPERCRONIC_SHA1SUM=fe1a81a8a5809deebebbd7a209a3b97e542e2bcd \
 | 
				
			||||||
	\
 | 
						\
 | 
				
			||||||
	\
 | 
						\
 | 
				
			||||||
	DEBIAN_FRONTEND=noninteractive \
 | 
					 | 
				
			||||||
	LANG=C.UTF-8 \
 | 
						LANG=C.UTF-8 \
 | 
				
			||||||
	TERM=xterm \
 | 
						TERM=xterm \
 | 
				
			||||||
	\
 | 
						\
 | 
				
			||||||
@@ -40,9 +39,10 @@ COPY ["lgsm/entrypoint.sh", "lgsm/initCron.sh", "lgsm/createAlias.sh", "/home/"]
 | 
				
			|||||||
# iproute2 needed because of "-slim"
 | 
					# iproute2 needed because of "-slim"
 | 
				
			||||||
RUN dpkg --add-architecture i386 && \
 | 
					RUN dpkg --add-architecture i386 && \
 | 
				
			||||||
	apt-get update -y && \
 | 
						apt-get update -y && \
 | 
				
			||||||
	apt-get install -y bc binutils bsdmainutils bzip2 ca-certificates cpio curl file gzip hostname jq lib32gcc1 lib32stdc++6 netcat python3 tar tmux unzip util-linux wget xz-utils lib32gcc1 lib32stdc++6 libsdl2-2.0-0:i386 distro-info \
 | 
						DEBIAN_FRONTEND=noninteractive apt-get install -y bc binutils bsdmainutils bzip2 ca-certificates cpio curl distro-info file gzip hostname jq lib32gcc-s1 lib32stdc++6 netcat-openbsd python3 tar tmux unzip util-linux uuid-runtime wget xz-utils \
 | 
				
			||||||
		libtinfo5:i386 \
 | 
						lib32gcc-s1 lib32stdc++6 libsdl2-2.0-0:i386 \
 | 
				
			||||||
		procps iproute2 && \
 | 
						libtinfo5:i386 \
 | 
				
			||||||
 | 
						procps iproute2 && \
 | 
				
			||||||
	\
 | 
						\
 | 
				
			||||||
	groupadd -g $GROUP_ID $DOCKER_USER && \
 | 
						groupadd -g $GROUP_ID $DOCKER_USER && \
 | 
				
			||||||
	useradd -d "$STEAM_PATH" -g $GROUP_ID -u $USER_ID -m $DOCKER_USER && \
 | 
						useradd -d "$STEAM_PATH" -g $GROUP_ID -u $USER_ID -m $DOCKER_USER && \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,24 +11,20 @@ set -o pipefail
 | 
				
			|||||||
CFG_PATH="${SERVER_PATH}/garrysmod/cfg/gmodserver.cfg"
 | 
					CFG_PATH="${SERVER_PATH}/garrysmod/cfg/gmodserver.cfg"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function configReplace() {
 | 
					function configReplace() {
 | 
				
			||||||
	source="$1"
 | 
					    local source="$1"
 | 
				
			||||||
	target="\"$2\""
 | 
					    local target="$2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	count=$(grep -Poc "($source).+" "${CFG_PATH}")
 | 
					    count=$(grep -Ece "^\s*${source}\s" "${CFG_PATH}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	echo "[initConfig.sh]Request for replacing $source to $target, source is found $count times"
 | 
					    echo "[initConfig.sh]Request for replacing \"$source\" to \"$target\", source is found $count times"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ "$count" == "1" ]; then
 | 
					    sed -E -i "/^\s${source}\s.*/d" "${CFG_PATH}"
 | 
				
			||||||
		sed -Ei "/${source}.*/d" "${CFG_PATH}"
 | 
					 | 
				
			||||||
		echo "$source $target" >> "${CFG_PATH}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	elif [ "$count" == "0" ]; then
 | 
					    local file_ends_on_newline=$([ "$(tail -c1 "${CFG_PATH}" | wc -l)" -eq 1 ] && echo true || echo false)
 | 
				
			||||||
		echo "" >> "${CFG_PATH}"
 | 
					    if ! $file_ends_on_newline; then
 | 
				
			||||||
		echo "$source $target" >> "${CFG_PATH}"
 | 
					        echo "" >> "${CFG_PATH}"
 | 
				
			||||||
		
 | 
					    fi
 | 
				
			||||||
	else
 | 
					    echo "$source \"$target\"" >> "${CFG_PATH}"
 | 
				
			||||||
		echo "[initConfig.sh]can't set $1 because there are multiple in"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#create default server.config
 | 
					#create default server.config
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -59,7 +59,7 @@ function stopServer() {
 | 
				
			|||||||
	IS_RUNNING="false"
 | 
						IS_RUNNING="false"
 | 
				
			||||||
	echo "done!"
 | 
						echo "done!"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
./"$SERVER_EXECUTABLE" start &
 | 
					./"$SERVER_EXECUTABLE" start
 | 
				
			||||||
trap stopServer SIGTERM
 | 
					trap stopServer SIGTERM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#start cron
 | 
					#start cron
 | 
				
			||||||
@@ -71,6 +71,7 @@ bash "/home/initCron.sh"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# --- Wait for Shutdown ---
 | 
					# --- Wait for Shutdown ---
 | 
				
			||||||
echo "Server is running, waiting for SIGTERM"
 | 
					echo "Server is running, waiting for SIGTERM"
 | 
				
			||||||
 | 
					tail -f /home/steam/log/console/gmodserver-console.log &
 | 
				
			||||||
while [ "$IS_RUNNING" = "true" ]
 | 
					while [ "$IS_RUNNING" = "true" ]
 | 
				
			||||||
do
 | 
					do
 | 
				
			||||||
	sleep 1s
 | 
						sleep 1s
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										0
									
								
								test/testBuild.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								test/testBuild.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								test/testCaseQuick.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								test/testCaseQuick.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								test/testHealth.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								test/testHealth.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								test/testStyle.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								test/testStyle.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
		Reference in New Issue
	
	Block a user