Upgrade Java runtime to 17 and add container startup verification#143
Merged
tomakehurst merged 9 commits intomainfrom Feb 26, 2026
Merged
Upgrade Java runtime to 17 and add container startup verification#143tomakehurst merged 9 commits intomainfrom
tomakehurst merged 9 commits intomainfrom
Conversation
- Update all Dockerfiles (standard and Alpine, release and nightly) to use eclipse-temurin:17-jre / eclipse-temurin:17-jre-alpine as the runtime base - Update nightly build stage from gradle:7-jdk11 to gradle:8-jdk17 - Bump java.version in integration-tests/pom.xml from 11 to 17 - Upgrade CI workflow JDK setup from Java 11 to 17 - Add "Verify container startup" step in ci.yml: starts the freshly built image, polls /__admin/health until it responds (30s timeout), then stops and removes the container to confirm the image boots correctly https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
- Revert ci.yml JDK setup back to 11 and remove the startup test step that was incorrectly added to the generic CI workflow - Add verify-container-startup job to release-4.x-beta.yml: builds the standard image locally (amd64) with the bundled WireMock version, starts the container, polls /__admin/health until it responds (30s timeout), then stops and removes it - Make docker-build-push depend on verify-container-startup so the multi-platform push only happens after the container is confirmed healthy https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
Instead of hard-coding a Java version in the Dockerfiles, introduce a JAVA_VERSION build arg that defaults to 11 so existing 3.x release workflows are unaffected. The release-4.x-beta.yml workflow passes JAVA_VERSION=17 in every build (both the local verify-container-startup build and the multi-platform docker-build-push). https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
The integration tests (pom.xml java.version=17) require JDK 17 to compile, so running them under JDK 11 fails. Add two new matrix entries — standard and Alpine — with JAVA_VERSION: 17. Each entry passes JAVA_VERSION as a Docker build arg (so the correct JRE is baked into the image) and uses it for the actions/setup-java step (so Maven compiles and runs under the matching JDK). The existing JAVA_VERSION: 11 entries are preserved for continued 3.x coverage. https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
…version The test runner JDK and the JRE inside the Docker container are independent. pom.xml targets Java 17 (source/target), so JDK 11 fails to compile with "invalid source release: 17". Fix by pinning the setup-java step to 17 for all matrix entries. JAVA_VERSION continues to control only the Docker build arg (i.e. which JRE is baked into the image being tested). https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
Eclipse Temurin dropped 32-bit ARM (armv7/armhf) support in Java 17. eclipse-temurin:17-jre has no linux/arm/v7 manifest, so the multi-platform docker/build-push-action step was failing for that platform target. Java 17 matrix now builds only linux/amd64 and linux/arm64 (64-bit ARM), which are both supported. The Java 11 matrix continues to include linux/arm/v7 as before since eclipse-temurin:11-jre supports it. https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
eclipse-temurin:17-jre / eclipse-temurin:17-jre-alpine as the runtime base
image, polls /__admin/health until it responds (30s timeout), then stops
and removes the container to confirm the image boots correctly
https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg