From 2d1e96f5ba5f971fe5199bdb6f0bafb7d54b1f8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Gonz=C3=A1lez?= <7822554+AlexTMjugador@users.noreply.github.com> Date: Sat, 15 Nov 2025 02:36:09 +0100 Subject: [PATCH 1/5] fix(graalvm): update to Oracle Linux 9 to fix glibc compat issues (#3761) --- .github/workflows/build-multiarch.yml | 6 +++--- docs/versions/java.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-multiarch.yml b/.github/workflows/build-multiarch.yml index b8aea2cd..b6063f8e 100644 --- a/.github/workflows/build-multiarch.yml +++ b/.github/workflows/build-multiarch.yml @@ -43,12 +43,12 @@ jobs: platforms: linux/amd64,linux/arm64 mcVersion: latest - variant: java25-graalvm - baseImage: container-registry.oracle.com/graalvm/jdk:25-ol8 + baseImage: container-registry.oracle.com/graalvm/jdk:25-ol9 platforms: linux/amd64,linux/arm64 mcVersion: latest # JAVA 21: - variant: java21-graalvm - baseImage: container-registry.oracle.com/graalvm/jdk:21-ol8 + baseImage: container-registry.oracle.com/graalvm/jdk:21-ol9 platforms: linux/amd64,linux/arm64 mcVersion: latest - variant: java21 @@ -70,7 +70,7 @@ jobs: platforms: linux/amd64,linux/arm/v7,linux/arm64 mcVersion: 1.20.4 - variant: java17-graalvm - baseImage: container-registry.oracle.com/graalvm/jdk:17-ol8 + baseImage: container-registry.oracle.com/graalvm/jdk:17-ol9 platforms: linux/amd64,linux/arm64 mcVersion: 1.20.4 - variant: java17-alpine diff --git a/docs/versions/java.md b/docs/versions/java.md index f854b3f3..d88841ca 100644 --- a/docs/versions/java.md +++ b/docs/versions/java.md @@ -31,7 +31,7 @@ Notes 1. Why no arm64 for Java 17 Alpine? That is because the base images, such as [elipse-temurin](https://hub.docker.com/_/eclipse-temurin/tags?page=&page_size=&ordering=&name=17-jre-alpine) do not provide support for that. Use the Ubuntu based images instead. 2. Short-term variant, subject to deprecation upon next version introduction -3. Based on the [Oracle GraalMV images](https://blogs.oracle.com/java/post/new-oracle-graalvm-container-images), which as of JDK 17, are now under the [GraalVM Free License](https://blogs.oracle.com/java/post/graalvm-free-license) incorporating what used to be known as the GraalVM Enterprise. +3. Based on the [Oracle GraalVM images](https://blogs.oracle.com/java/post/new-oracle-graalvm-container-images), which as of JDK 17, are now under the [GraalVM Free License](https://blogs.oracle.com/java/post/graalvm-free-license) incorporating what used to be known as the GraalVM Enterprise. 4. This version of Java is [recommended for PaperMC 1.16.5](https://docs.papermc.io/paper/getting-started/#requirements) !!! example "Example using java8" From 0e3c655d27f93530aa4cffdb21d7dea9d988fd86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Gonz=C3=A1lez?= <7822554+AlexTMjugador@users.noreply.github.com> Date: Sat, 15 Nov 2025 14:47:03 +0100 Subject: [PATCH 2/5] fix(tests): ensure Nginx is fully spun up before starting MC container (#3763) --- .../generic-packs/docker-compose.yml | 8 +++++++- .../icon-gif-multiframe/docker-compose.yml | 9 ++++++++- .../icon-png-atscale/docker-compose.yml | 14 +++++++++++++- .../icon-png-scale/docker-compose.yml | 14 +++++++++++++- tests/setuponlytests/packwiz/docker-compose.yml | 8 +++++++- 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/tests/setuponlytests/generic-packs/docker-compose.yml b/tests/setuponlytests/generic-packs/docker-compose.yml index 52a3c9cf..2e6bd70a 100644 --- a/tests/setuponlytests/generic-packs/docker-compose.yml +++ b/tests/setuponlytests/generic-packs/docker-compose.yml @@ -3,9 +3,15 @@ services: image: nginx volumes: - ./web:/usr/share/nginx/html + healthcheck: + test: ["CMD", "curl", "--fail", "http://localhost/configs.zip"] + interval: 3s + timeout: 5s + retries: 3 mc: depends_on: - - web + web: + condition: service_healthy image: ${IMAGE_TO_TEST:-itzg/minecraft-server} environment: EULA: "true" diff --git a/tests/setuponlytests/icon-gif-multiframe/docker-compose.yml b/tests/setuponlytests/icon-gif-multiframe/docker-compose.yml index be0d5758..590b18f1 100644 --- a/tests/setuponlytests/icon-gif-multiframe/docker-compose.yml +++ b/tests/setuponlytests/icon-gif-multiframe/docker-compose.yml @@ -3,9 +3,16 @@ services: image: nginx volumes: - ./web:/usr/share/nginx/html + healthcheck: + test: + ["CMD", "curl", "--fail", "http://localhost/motion-tween-example.gif"] + interval: 3s + timeout: 5s + retries: 3 mc: depends_on: - - web + web: + condition: service_healthy image: ${IMAGE_TO_TEST:-itzg/minecraft-server} environment: EULA: "true" diff --git a/tests/setuponlytests/icon-png-atscale/docker-compose.yml b/tests/setuponlytests/icon-png-atscale/docker-compose.yml index 7ac20b6d..b179d581 100644 --- a/tests/setuponlytests/icon-png-atscale/docker-compose.yml +++ b/tests/setuponlytests/icon-png-atscale/docker-compose.yml @@ -3,9 +3,21 @@ services: image: nginx volumes: - ./web:/usr/share/nginx/html + healthcheck: + test: + [ + "CMD", + "curl", + "--fail", + "http://localhost/4737386_minecraft_squircle_icon.png", + ] + interval: 3s + timeout: 5s + retries: 3 mc: depends_on: - - web + web: + condition: service_healthy image: ${IMAGE_TO_TEST:-itzg/minecraft-server} environment: EULA: "true" diff --git a/tests/setuponlytests/icon-png-scale/docker-compose.yml b/tests/setuponlytests/icon-png-scale/docker-compose.yml index 7ac20b6d..b179d581 100644 --- a/tests/setuponlytests/icon-png-scale/docker-compose.yml +++ b/tests/setuponlytests/icon-png-scale/docker-compose.yml @@ -3,9 +3,21 @@ services: image: nginx volumes: - ./web:/usr/share/nginx/html + healthcheck: + test: + [ + "CMD", + "curl", + "--fail", + "http://localhost/4737386_minecraft_squircle_icon.png", + ] + interval: 3s + timeout: 5s + retries: 3 mc: depends_on: - - web + web: + condition: service_healthy image: ${IMAGE_TO_TEST:-itzg/minecraft-server} environment: EULA: "true" diff --git a/tests/setuponlytests/packwiz/docker-compose.yml b/tests/setuponlytests/packwiz/docker-compose.yml index d4ff5016..63a85b80 100644 --- a/tests/setuponlytests/packwiz/docker-compose.yml +++ b/tests/setuponlytests/packwiz/docker-compose.yml @@ -3,9 +3,15 @@ services: image: nginx volumes: - ./web:/usr/share/nginx/html + healthcheck: + test: ["CMD", "curl", "--fail", "http://localhost/pack.toml"] + interval: 3s + timeout: 5s + retries: 3 mc: depends_on: - - web + web: + condition: service_healthy image: ${IMAGE_TO_TEST:-itzg/minecraft-server} environment: EULA: "true" From a29bb020d98a155b311111a378088c5f05b8bdbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Gonz=C3=A1lez?= <7822554+AlexTMjugador@users.noreply.github.com> Date: Sat, 15 Nov 2025 17:41:17 +0100 Subject: [PATCH 3/5] fix(graalvm): update to Oracle Linux 10 to fix file command mimetype issues (#3764) --- .github/workflows/build-multiarch.yml | 6 +++--- build/ol/install-packages.sh | 19 ++++++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-multiarch.yml b/.github/workflows/build-multiarch.yml index b6063f8e..cbdb8ce8 100644 --- a/.github/workflows/build-multiarch.yml +++ b/.github/workflows/build-multiarch.yml @@ -43,12 +43,12 @@ jobs: platforms: linux/amd64,linux/arm64 mcVersion: latest - variant: java25-graalvm - baseImage: container-registry.oracle.com/graalvm/jdk:25-ol9 + baseImage: container-registry.oracle.com/graalvm/jdk:25-ol10 platforms: linux/amd64,linux/arm64 mcVersion: latest # JAVA 21: - variant: java21-graalvm - baseImage: container-registry.oracle.com/graalvm/jdk:21-ol9 + baseImage: container-registry.oracle.com/graalvm/jdk:21-ol10 platforms: linux/amd64,linux/arm64 mcVersion: latest - variant: java21 @@ -70,7 +70,7 @@ jobs: platforms: linux/amd64,linux/arm/v7,linux/arm64 mcVersion: 1.20.4 - variant: java17-graalvm - baseImage: container-registry.oracle.com/graalvm/jdk:17-ol9 + baseImage: container-registry.oracle.com/graalvm/jdk:17-ol10 platforms: linux/amd64,linux/arm64 mcVersion: 1.20.4 - variant: java17-alpine diff --git a/build/ol/install-packages.sh b/build/ol/install-packages.sh index 5e0135ce..23ea9c36 100755 --- a/build/ol/install-packages.sh +++ b/build/ol/install-packages.sh @@ -15,7 +15,7 @@ dnf config-manager --set-enabled ol${os_major_version}_codeready_builder tee /etc/yum.repos.d/ol${os_major_version}-epel.repo < Date: Sat, 15 Nov 2025 11:54:40 -0600 Subject: [PATCH 4/5] Exclude Netty http3 to ensure Alpine musl support (#3765) --- Dockerfile | 2 +- .../multi-part-motd/docker-compose.yml | 7 +++-- tests/fulltests/test.sh | 28 +++++++++++-------- .../vanilla-latest/docker-compose.yml | 6 ++-- 4 files changed, 25 insertions(+), 18 deletions(-) mode change 100644 => 100755 tests/fulltests/test.sh diff --git a/Dockerfile b/Dockerfile index 3292d15e..393959f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,7 +49,7 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \ --var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \ --from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz -ARG MC_HELPER_VERSION=1.50.5 +ARG MC_HELPER_VERSION=1.50.6 ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION} # used for cache busting local copy of mc-image-helper ARG MC_HELPER_REV=1 diff --git a/tests/fulltests/multi-part-motd/docker-compose.yml b/tests/fulltests/multi-part-motd/docker-compose.yml index 72d24ae1..a84b9adb 100644 --- a/tests/fulltests/multi-part-motd/docker-compose.yml +++ b/tests/fulltests/multi-part-motd/docker-compose.yml @@ -1,12 +1,14 @@ services: monitor: depends_on: - - mc + mc: + condition: service_started image: ${IMAGE_TO_TEST:-itzg/minecraft-server} entrypoint: mc-monitor command: status --host mc --retry-interval 1s --timeout 1s --retry-limit 60 + restart: no mc: - restart: "no" + restart: no image: ${IMAGE_TO_TEST:-itzg/minecraft-server} environment: EULA: "TRUE" @@ -14,4 +16,3 @@ services: TYPE: PAPER # regression tests https://github.com/itzg/docker-minecraft-server/issues/2545 MOTD: "Foo§rBar" - diff --git a/tests/fulltests/test.sh b/tests/fulltests/test.sh old mode 100644 new mode 100755 index 7e48ab96..a1bde85c --- a/tests/fulltests/test.sh +++ b/tests/fulltests/test.sh @@ -3,24 +3,28 @@ # go to script root directory cd "$(dirname "$0")" || exit 1 -down() { - docker compose -f "$1" down -v --remove-orphans -} - # tests to completely spin up Minecraft and use the monitor to validate the service is running. fullMinecraftUpTest(){ file="$1" - failed=false + result=0 + + echo "Testing with images:" + docker compose -f "$file" config --images + # run the monitor to validate the Minecraft image is healthy - docker compose -f "$file" run monitor || failed=true - echo "$(dirname "$file") Result: failed=$failed" - if $failed; then - docker compose logs mc - down "$file" - return 1 + upArgs=( + --attach-dependencies + --always-recreate-deps + --abort-on-container-failure + ) + if ! docker compose -f "$file" up "${upArgs[@]}" monitor; then + echo "$(dirname "$file") Result: failed" + result=1 else - down "$file" + echo "$(dirname "$file") Result: success" fi + docker compose -f "$file" down -v --remove-orphans + return $result } # go through each folder in fulltests and run fullbuilds diff --git a/tests/fulltests/vanilla-latest/docker-compose.yml b/tests/fulltests/vanilla-latest/docker-compose.yml index 1e39bb17..891f4970 100644 --- a/tests/fulltests/vanilla-latest/docker-compose.yml +++ b/tests/fulltests/vanilla-latest/docker-compose.yml @@ -1,12 +1,14 @@ services: monitor: depends_on: - - mc + mc: + condition: service_started image: ${IMAGE_TO_TEST:-itzg/minecraft-server} entrypoint: mc-monitor command: status --host mc --retry-interval 1s --timeout 1s --retry-limit 300 + restart: no mc: - restart: "no" + restart: no image: ${IMAGE_TO_TEST:-itzg/minecraft-server} environment: EULA: "TRUE" From 85673fb661e2c249d0640ac982090441b4f393e6 Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Sun, 16 Nov 2025 20:09:54 -0600 Subject: [PATCH 5/5] Exclude cull-less-leaves and mining-speed-tooltips (#3766) --- files/cf-exclude-include.json | 2 ++ files/modrinth-exclude-include.json | 2 ++ 2 files changed, 4 insertions(+) diff --git a/files/cf-exclude-include.json b/files/cf-exclude-include.json index 4c74d6e3..97f994aa 100644 --- a/files/cf-exclude-include.json +++ b/files/cf-exclude-include.json @@ -35,6 +35,7 @@ "controllable", "controlling", "craftpresence", + "cull-less-leaves", "ctm", "custom-main-menu", "dark-mode-everywhere", @@ -101,6 +102,7 @@ "make-bubbles-pop", "menumobs", "minecraft-rich-presence", + "mining-speed-tooltips", "model-gap-fix", "more-overlays", "mouse-tweaks", diff --git a/files/modrinth-exclude-include.json b/files/modrinth-exclude-include.json index 2a1e309b..5bbbf47d 100644 --- a/files/modrinth-exclude-include.json +++ b/files/modrinth-exclude-include.json @@ -32,6 +32,7 @@ "continuity", "controlling", "craftpresence", + "Cull Less Leaves", "cwb", "DisableCustomWorldsAdvice", "distraction_free_recipes", @@ -71,6 +72,7 @@ "loadmyresources", "lootbeams", "MindfulDarkness", + "miningspeedtooltips", "MouseTweaks", "nicer-skies", "notenoughanimations",