tmux test
minecraft-build-testing / Docker prune (vm-docker-build2) (push) Successful in 3s
minecraft-build-testing / poll-debian-base-and-detect-changes (push) Successful in 19s
minecraft-build-testing / Build and Push testing (push) Successful in 25s
minecraft-build-testing / generate-changelogs (push) Successful in 8s
minecraft-build-testing / generate-build-info (push) Successful in 10s

This commit is contained in:
2026-07-21 12:06:17 -07:00
parent 51e7fb4b29
commit 30a8898ac4
5 changed files with 71 additions and 4 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/maste
# Install Java & Dependencies.
RUN apt-get -y update \
&& apt-get install -y --no-install-recommends bzip2 lsb-release jq screen \
&& apt-get install -y --no-install-recommends bzip2 lsb-release jq screen tmux \
&& apt-get -y --fix-broken install \
&& apt-get -y autoclean \
&& apt-get -y autoremove \
+4 -2
View File
@@ -16,7 +16,9 @@ EULA_FILE=$MC_DIR/eula.txt
EULA_MARKER=$MC_DIR/.eula_accepted
SERVER_PROPERTIES=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/server.properties
START_FILE=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/start.sh
START_FILE_1=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/start-screen-1.sh
START_FILE_2=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/start-screen-2.sh
START_FILE_3=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/start-tmux.sh
VERSION_CHECK=$(curl -s "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json" | grep -Pom 1 '"url": "\K[^"]*'$MC_VERSION'.json')
MC_SERVER_FILE=$(curl -s $VERSION_CHECK | jq --raw-output '.downloads.server.url')
@@ -395,7 +397,7 @@ if [ -f $MC_DIR/start.sh ]; then
echo "INFO ! start.sh found ... moving on."
else
echo "WARNING ! start.sh missing ... downloading default file."
wget --no-cache --show-progress --progress=bar:force:noscroll $START_FILE -O $MC_DIR/start.sh
wget --no-cache --show-progress --progress=bar:force:noscroll $START_FILE_3 -O $MC_DIR/start.sh
chmod +x $MC_DIR/start.sh
fi
@@ -3,7 +3,6 @@
# All rights reserved
cd /mcserver
# exec ./run-$MC_TYPE-$MC_VERSION.sh
# Check if a screen session is already running
if screen -list | grep -q "mcserver"; then
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
LOGFILE=/mcserver/logs/latest.log
SESSION=mcserver
cd /mcserver
# Check if a screen session is already running
if screen -list | grep -q "$SESSION"; then
echo "INFO ! A screen session for the Minecraft server is already running."
cleanup() {
echo "[INFO] Stopping Minecraft..."
screen -S "$SESSION" -X $SESSION "stop$(printf '\r')"
# Wait up to 60 seconds
for i in {1..60}; do
if ! screen -list | grep -q "$SESSION"; then
break
fi
sleep 1
done
# Kill it if it's still alive
screen -S "$SESSION" -X quit 2>/dev/null || true
exit 0
}
trap cleanup SIGINT SIGTERM
else
# Start the Minecraft server in a detached screen session
echo "INFO ! Starting Minecraft Server in a screen session."
touch "$LOGFILE"
screen -L -Logfile "$LOGFILE" -S "$SESSION" bash -c ./run-$MC_TYPE-$MC_VERSION.sh
exec tail -F "$LOGFILE"
fi
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
LOGFILE=/mcserver/logs/latest.log
SESSION=mcserver
cd /mcserver
mkdir -p "$(dirname "$LOGFILE")"
touch "$LOGFILE"
cleanup() {
echo "[INFO] Stopping Minecraft..."
if tmux has-session -t "$SESSION" 2>/dev/null; then
tmux send-keys -t "$SESSION" "stop" Enter
for i in {1..60}; do
tmux has-session -t "$SESSION" 2>/dev/null || break
sleep 1
done
tmux kill-session -t "$SESSION" 2>/dev/null || true
fi
exit 0
}
trap cleanup SIGTERM SIGINT
echo "INFO ! Starting Minecraft Server $MC_TYPE-$MC_VERSION"
tmux new-session -d -s "$SESSION" \
"cd $MC_DIR && ./run-$MC_TYPE-$MC_VERSION.sh 2>&1 | tee -a '$LOGFILE'"
exec tail -F "$LOGFILE"