From 8543c96d3816100b71064ddab0103937c707109d Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Sat, 9 Apr 2022 22:47:35 -0500 Subject: [PATCH 1/3] Corrected autopause's resume to work with alpine images Fixes #1463 --- Dockerfile | 2 -- files/autopause/knockd-config.cfg | 6 +++--- scripts/start-autopause | 12 ++++++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index a7c8cb99cdd..28575c4f7a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,8 +61,6 @@ ENV UID=1000 GID=1000 \ MEMORY="1G" \ TYPE=VANILLA VERSION=LATEST \ ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \ - ENABLE_AUTOPAUSE=false AUTOPAUSE_TIMEOUT_EST=3600 AUTOPAUSE_TIMEOUT_KN=120 AUTOPAUSE_TIMEOUT_INIT=600 \ - AUTOPAUSE_PERIOD=10 AUTOPAUSE_KNOCK_INTERFACE=eth0 \ ENABLE_AUTOSTOP=false AUTOSTOP_TIMEOUT_EST=3600 AUTOSTOP_TIMEOUT_INIT=1800 AUTOSTOP_PERIOD=10 COPY --chmod=755 scripts/start* / diff --git a/files/autopause/knockd-config.cfg b/files/autopause/knockd-config.cfg index 84cbe366aeb..768e6c868f8 100644 --- a/files/autopause/knockd-config.cfg +++ b/files/autopause/knockd-config.cfg @@ -3,13 +3,13 @@ [unpauseMCServer-server] sequence = 25565 seq_timeout = 1 - command = /usr/sbin/gosu minecraft:minecraft /autopause/resume.sh + command = /autopause/resume.sh tcpflags = syn [unpauseMCServer-rcon] sequence = 25575 seq_timeout = 1 - command = /usr/sbin/gosu minecraft:minecraft /autopause/resume.sh + command = /autopause/resume.sh tcpflags = syn [unpauseMCServer-bedrock] sequence = 19132:udp - command = /usr/sbin/gosu minecraft:minecraft /autopause/resume.sh + command = /autopause/resume.sh diff --git a/scripts/start-autopause b/scripts/start-autopause index 02b33d0acf9..450d65950d4 100755 --- a/scripts/start-autopause +++ b/scripts/start-autopause @@ -5,6 +5,18 @@ : "${SERVER_PORT:=25565}" export SERVER_PORT +: "${ENABLE_AUTOPAUSE:=false}" +export ENABLE_AUTOPAUSE +: "${AUTOPAUSE_TIMEOUT_EST:=3600}" +export AUTOPAUSE_TIMEOUT_EST +: "${AUTOPAUSE_TIMEOUT_KN:=120}" +export AUTOPAUSE_TIMEOUT_KN +: "${AUTOPAUSE_TIMEOUT_INIT:=600}" +export AUTOPAUSE_TIMEOUT_INIT +: "${AUTOPAUSE_PERIOD:=10}" +export AUTOPAUSE_PERIOD +: "${AUTOPAUSE_KNOCK_INTERFACE:=eth0}" +export AUTOPAUSE_KNOCK_INTERFACE log "Autopause functionality enabled" From 48e0aed170dd27c7d7b1904e7c2218c12e776800 Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Sun, 10 Apr 2022 08:36:34 -0500 Subject: [PATCH 2/3] Moved autostop variables out of Dockerfile --- Dockerfile | 3 +-- scripts/start-autopause | 12 ++++++------ scripts/start-autostop | 8 ++++++++ scripts/start-configuration | 2 ++ 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 28575c4f7a4..a0db920d663 100644 --- a/Dockerfile +++ b/Dockerfile @@ -60,8 +60,7 @@ STOPSIGNAL SIGTERM ENV UID=1000 GID=1000 \ MEMORY="1G" \ TYPE=VANILLA VERSION=LATEST \ - ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \ - ENABLE_AUTOSTOP=false AUTOSTOP_TIMEOUT_EST=3600 AUTOSTOP_TIMEOUT_INIT=1800 AUTOSTOP_PERIOD=10 + ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft COPY --chmod=755 scripts/start* / COPY --chmod=755 bin/ /usr/local/bin/ diff --git a/scripts/start-autopause b/scripts/start-autopause index 450d65950d4..c2646726834 100755 --- a/scripts/start-autopause +++ b/scripts/start-autopause @@ -4,18 +4,18 @@ . "${SCRIPTS:-/}start-utils" : "${SERVER_PORT:=25565}" -export SERVER_PORT : "${ENABLE_AUTOPAUSE:=false}" -export ENABLE_AUTOPAUSE : "${AUTOPAUSE_TIMEOUT_EST:=3600}" -export AUTOPAUSE_TIMEOUT_EST : "${AUTOPAUSE_TIMEOUT_KN:=120}" -export AUTOPAUSE_TIMEOUT_KN : "${AUTOPAUSE_TIMEOUT_INIT:=600}" -export AUTOPAUSE_TIMEOUT_INIT : "${AUTOPAUSE_PERIOD:=10}" -export AUTOPAUSE_PERIOD : "${AUTOPAUSE_KNOCK_INTERFACE:=eth0}" +export SERVER_PORT +export ENABLE_AUTOPAUSE +export AUTOPAUSE_TIMEOUT_EST +export AUTOPAUSE_TIMEOUT_KN +export AUTOPAUSE_TIMEOUT_INIT +export AUTOPAUSE_PERIOD export AUTOPAUSE_KNOCK_INTERFACE log "Autopause functionality enabled" diff --git a/scripts/start-autostop b/scripts/start-autostop index b71bf395e25..1962526d050 100755 --- a/scripts/start-autostop +++ b/scripts/start-autostop @@ -4,7 +4,15 @@ . "${SCRIPTS:-/}start-utils" : "${SERVER_PORT:=25565}" +: "${ENABLE_AUTOSTOP:=false}" +: "${AUTOSTOP_TIMEOUT_EST:=3600}" +: "${AUTOSTOP_TIMEOUT_INIT:=1800}" +: "${AUTOSTOP_PERIOD:=10}" export SERVER_PORT +export ENABLE_AUTOSTOP +export AUTOSTOP_TIMEOUT_EST +export AUTOSTOP_TIMEOUT_INIT +export AUTOSTOP_PERIOD log "Autostop functionality enabled" diff --git a/scripts/start-configuration b/scripts/start-configuration index a3720a52bb2..1dc6ffd701e 100755 --- a/scripts/start-configuration +++ b/scripts/start-configuration @@ -14,6 +14,8 @@ IFS=$'\n\t' : "${RCON_CMDS_FIRST_CONNECT:=}" : "${RCON_CMDS_LAST_DISCONNECT:=}" : "${RCON_CMDS_PERIOD:=10}" +: "${ENABLE_AUTOPAUSE:=false}" +: "${ENABLE_AUTOSTOP:=false}" shopt -s nullglob From 16692da3d95ee6d06d612fff488b1994f94419ee Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Sun, 10 Apr 2022 10:49:16 -0500 Subject: [PATCH 3/3] Shift out remaining Dockerfile variable defaults --- Dockerfile | 5 +---- scripts/start-configuration | 9 ++++++--- scripts/start-finalExec | 1 + scripts/start-setupServerProperties | 1 + tests/setuponlytests/defaults/docker-compose.yml | 11 +++++++++++ tests/setuponlytests/defaults/verify.sh | 3 +++ 6 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 tests/setuponlytests/defaults/docker-compose.yml create mode 100644 tests/setuponlytests/defaults/verify.sh diff --git a/Dockerfile b/Dockerfile index a0db920d663..38a8e395f68 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,10 +57,7 @@ WORKDIR /data STOPSIGNAL SIGTERM -ENV UID=1000 GID=1000 \ - MEMORY="1G" \ - TYPE=VANILLA VERSION=LATEST \ - ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft +ENV TYPE=VANILLA VERSION=LATEST EULA="" COPY --chmod=755 scripts/start* / COPY --chmod=755 bin/ /usr/local/bin/ diff --git a/scripts/start-configuration b/scripts/start-configuration index 1dc6ffd701e..e2626abd8e4 100755 --- a/scripts/start-configuration +++ b/scripts/start-configuration @@ -7,15 +7,18 @@ IFS=$'\n\t' : "${EULA:=}" : "${PROXY:=}" -: "${RCON_PASSWORD_FILE:=}" +: "${ENABLE_AUTOPAUSE:=false}" +: "${ENABLE_AUTOSTOP:=false}" : "${RCON_CMDS_STARTUP:=}" : "${RCON_CMDS_ON_CONNECT:=}" : "${RCON_CMDS_ON_DISCONNECT:=}" : "${RCON_CMDS_FIRST_CONNECT:=}" : "${RCON_CMDS_LAST_DISCONNECT:=}" : "${RCON_CMDS_PERIOD:=10}" -: "${ENABLE_AUTOPAUSE:=false}" -: "${ENABLE_AUTOSTOP:=false}" +: "${RCON_PASSWORD_FILE:=}" +: "${RCON_PASSWORD:=minecraft}" +: "${RCON_PORT:=25575}" +export RCON_PASSWORD RCON_PORT shopt -s nullglob diff --git a/scripts/start-finalExec b/scripts/start-finalExec index 8a85e017ce7..46a0aaeeb18 100755 --- a/scripts/start-finalExec +++ b/scripts/start-finalExec @@ -97,6 +97,7 @@ if [[ ${GUI,,} = false ]]; then EXTRA_ARGS+=" nogui" fi +: "${MEMORY:=1G}" : "${INIT_MEMORY:=${MEMORY}}" : "${MAX_MEMORY:=${MEMORY}}" diff --git a/scripts/start-setupServerProperties b/scripts/start-setupServerProperties index 0a70273ae39..087a3c69373 100755 --- a/scripts/start-setupServerProperties +++ b/scripts/start-setupServerProperties @@ -4,6 +4,7 @@ . "${SCRIPTS:-/}start-utils" : "${SERVER_PROPERTIES:=/data/server.properties}" +: "${ENABLE_RCON:=true}" # FUNCTIONS function setServerPropValue { diff --git a/tests/setuponlytests/defaults/docker-compose.yml b/tests/setuponlytests/defaults/docker-compose.yml new file mode 100644 index 00000000000..970502b53c1 --- /dev/null +++ b/tests/setuponlytests/defaults/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3" + +services: + mc: + restart: "no" + image: ${IMAGE_TO_TEST:-itzg/minecraft-server} + environment: + EULA: "TRUE" + SETUP_ONLY: "TRUE" + volumes: + - ./data:/data diff --git a/tests/setuponlytests/defaults/verify.sh b/tests/setuponlytests/defaults/verify.sh new file mode 100644 index 00000000000..b6d87238bd2 --- /dev/null +++ b/tests/setuponlytests/defaults/verify.sh @@ -0,0 +1,3 @@ +mc-image-helper assert propertyEquals --file=server.properties --property=rcon.password --expect=minecraft +mc-image-helper assert propertyEquals --file=server.properties --property=rcon.port --expect=25575 +mc-image-helper assert propertyEquals --file=server.properties --property=enable-rcon --expect=true