testing
This commit is contained in:
parent
381bd9eeff
commit
a05eaa5211
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
data
|
||||
.env
|
||||
screenlog.0
|
||||
|
@ -10,7 +10,7 @@ RUN groupadd -g 1000 minecraft && \
|
||||
|
||||
# Install scripting dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get install -y curl gpg jq screen && \
|
||||
apt-get install -y curl gpg jq procps screen && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
18
Makefile
Normal file
18
Makefile
Normal file
@ -0,0 +1,18 @@
|
||||
CONTAINER = minecraft-minecraft-1
|
||||
|
||||
.PHONY: default build clean install
|
||||
default: build
|
||||
|
||||
build:
|
||||
docker compose build
|
||||
|
||||
clean:
|
||||
rm screenlog.0
|
||||
docker compose down --rmi all
|
||||
docker builder prune -f
|
||||
|
||||
install: build
|
||||
touch screenlog.0
|
||||
docker compose up -d
|
||||
sleep 2
|
||||
docker logs -f $(CONTAINER)
|
@ -12,8 +12,10 @@ services:
|
||||
image: ${IMAGE:-minecraft}:${TAG:-latest}
|
||||
ports:
|
||||
- "0.0.0.0:25565:25565"
|
||||
#volumes:
|
||||
# - minecraft:/app/world
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./screenlog.0
|
||||
target: /app/screenlog.0
|
||||
environment:
|
||||
EULA: "${EULA:-false}"
|
||||
DEBUG: "${DEBUG:-false}"
|
||||
|
@ -46,6 +46,9 @@ fi
|
||||
# Pre-create the screen log
|
||||
touch screenlog.0
|
||||
|
||||
# Set up a SIGTERM signal trap
|
||||
trap 'kill ${TAIL_PID}' SIGTERM
|
||||
|
||||
# Run server in screen (without attaching)
|
||||
/usr/bin/screen -dmS minecraft -L \
|
||||
bash -c "
|
||||
@ -54,6 +57,33 @@ touch screenlog.0
|
||||
/usr/bin/java $JVM_OPTS -jar server.jar --nogui
|
||||
"
|
||||
|
||||
# Get screen PID
|
||||
SCREEN_PID="$(
|
||||
screen -ls | grep -oE '[0-9]+\.minecraft' | cut -d. -f1
|
||||
)"
|
||||
|
||||
# Check screen PID
|
||||
if ! ps -p "$SCREEN_PID" > /dev/null; then
|
||||
echo "[ERROR] Could not obtain screen PID: \"$SCREEN_PID\""
|
||||
screen -ls
|
||||
echo now testing:
|
||||
screen -ls | grep -oE '[0-9]+\.minecraft' | cut -d. -f1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Tail screen log to container stdout
|
||||
[ "$DEBUG" = "true" ] && echo "[DEBUG] Tailing screenlog.0"
|
||||
tail -f screenlog.0
|
||||
tail -f screenlog.0 &
|
||||
TAIL_PID=$!
|
||||
wait "$TAIL_PID"
|
||||
|
||||
|
||||
if screen -ls | grep -q minecraft; then
|
||||
echo "[INFO] Stopping minecraft"
|
||||
/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "stop"\015'
|
||||
else
|
||||
echo "[WARN]: 'minecraft' screen not found attempting to stop server"
|
||||
return 1
|
||||
fi
|
||||
|
||||
wait "$SCREEN_PID"
|
||||
|
Loading…
x
Reference in New Issue
Block a user