From 749f8f635f9ae84c3602add6698d1e7d1372c12a Mon Sep 17 00:00:00 2001 From: OowhitecatoO Date: Fri, 31 Jul 2026 20:56:18 +0800 Subject: [PATCH] Fix NanoLimbo port not applying to an existing settings.yml (#4201) --- files/nanolimbo-settings-patch.json | 20 +++++++++------- scripts/start-deployNanoLimbo | 4 ++-- .../docker-compose.yml | 23 +++++++++++++++++++ .../seed/settings.yml | 4 ++++ .../nanolimbo-existing-settings/verify.sh | 4 ++++ 5 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 tests/setuponlytests/nanolimbo-existing-settings/docker-compose.yml create mode 100644 tests/setuponlytests/nanolimbo-existing-settings/seed/settings.yml create mode 100644 tests/setuponlytests/nanolimbo-existing-settings/verify.sh diff --git a/files/nanolimbo-settings-patch.json b/files/nanolimbo-settings-patch.json index 7946dd04..c19a3ad6 100644 --- a/files/nanolimbo-settings-patch.json +++ b/files/nanolimbo-settings-patch.json @@ -1,12 +1,16 @@ { - "file": "/data/settings.yml", - "ops": [ + "patches": [ { - "$set": { - "path": "$.bind.port", - "value": "${SERVER_PORT}", - "value-type": "int" - } + "file": "/data/settings.yml", + "ops": [ + { + "$set": { + "path": "$.bind.port", + "value": "${SERVER_PORT}", + "value-type": "int" + } + } + ] } ] -} \ No newline at end of file +} diff --git a/scripts/start-deployNanoLimbo b/scripts/start-deployNanoLimbo index 15597848..5a7f068f 100755 --- a/scripts/start-deployNanoLimbo +++ b/scripts/start-deployNanoLimbo @@ -158,10 +158,10 @@ traffic: # Ignored if -1.0 maxPacketBytesRate: 2048.0 EOF +else + mc-image-helper patch --patch-env-prefix "" /image/nanolimbo-settings-patch.json fi -mc-image-helper patch --patch-env-prefix "" /image/nanolimbo-settings-patch.json - export SERVER export FAMILY=LIMBO diff --git a/tests/setuponlytests/nanolimbo-existing-settings/docker-compose.yml b/tests/setuponlytests/nanolimbo-existing-settings/docker-compose.yml new file mode 100644 index 00000000..f8ec6875 --- /dev/null +++ b/tests/setuponlytests/nanolimbo-existing-settings/docker-compose.yml @@ -0,0 +1,23 @@ +services: + # copies seed/ into /data before mc starts, so the NanoLimbo setup takes its + # "settings.yml already exists" path instead of writing the template + seed: + restart: "no" + image: ${IMAGE_TO_TEST:-itzg/minecraft-server} + entrypoint: ["bash", "-c", "cp /seed/settings.yml /data/ && chown -R 1000:1000 /data"] + volumes: + - ./seed:/seed + - ./data:/data + + mc: + restart: "no" + image: ${IMAGE_TO_TEST:-itzg/minecraft-server} + depends_on: + seed: + condition: service_completed_successfully + environment: + EULA: "TRUE" + TYPE: NANOLIMBO + SERVER_PORT: "25599" + volumes: + - ./data:/data diff --git a/tests/setuponlytests/nanolimbo-existing-settings/seed/settings.yml b/tests/setuponlytests/nanolimbo-existing-settings/seed/settings.yml new file mode 100644 index 00000000..933ff4d2 --- /dev/null +++ b/tests/setuponlytests/nanolimbo-existing-settings/seed/settings.yml @@ -0,0 +1,4 @@ +bind: + ip: '0.0.0.0' + port: 25565 +maxPlayers: 100 diff --git a/tests/setuponlytests/nanolimbo-existing-settings/verify.sh b/tests/setuponlytests/nanolimbo-existing-settings/verify.sh new file mode 100644 index 00000000..96a53ab4 --- /dev/null +++ b/tests/setuponlytests/nanolimbo-existing-settings/verify.sh @@ -0,0 +1,4 @@ +set -e +# SERVER_PORT must have been applied to the settings.yml that was already there +port=$(mc-image-helper yaml-path --file /data/settings.yml .bind.port) +[ "$port" = 25599 ] || { echo "expected bind.port 25599 but was '$port'"; exit 1; }