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
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:
+1
-1
@@ -29,7 +29,7 @@ ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/maste
|
|||||||
|
|
||||||
# Install Java & Dependencies.
|
# Install Java & Dependencies.
|
||||||
RUN apt-get -y update \
|
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 --fix-broken install \
|
||||||
&& apt-get -y autoclean \
|
&& apt-get -y autoclean \
|
||||||
&& apt-get -y autoremove \
|
&& apt-get -y autoremove \
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ EULA_FILE=$MC_DIR/eula.txt
|
|||||||
EULA_MARKER=$MC_DIR/.eula_accepted
|
EULA_MARKER=$MC_DIR/.eula_accepted
|
||||||
|
|
||||||
SERVER_PROPERTIES=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/server.properties
|
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')
|
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')
|
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."
|
echo "INFO ! start.sh found ... moving on."
|
||||||
else
|
else
|
||||||
echo "WARNING ! start.sh missing ... downloading default file."
|
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
|
chmod +x $MC_DIR/start.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
# All rights reserved
|
# All rights reserved
|
||||||
|
|
||||||
cd /mcserver
|
cd /mcserver
|
||||||
# exec ./run-$MC_TYPE-$MC_VERSION.sh
|
|
||||||
|
|
||||||
# Check if a screen session is already running
|
# Check if a screen session is already running
|
||||||
if screen -list | grep -q "mcserver"; then
|
if screen -list | grep -q "mcserver"; then
|
||||||
@@ -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
|
||||||
@@ -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"
|
||||||
Reference in New Issue
Block a user