Skip to content

Modernizes the OpenIDM Docker images and broadens their multi-architecture build matrix#193

Open
vharseko wants to merge 2 commits into
OpenIdentityPlatform:masterfrom
vharseko:features/docker
Open

Modernizes the OpenIDM Docker images and broadens their multi-architecture build matrix#193
vharseko wants to merge 2 commits into
OpenIdentityPlatform:masterfrom
vharseko:features/docker

Conversation

@vharseko

Copy link
Copy Markdown
Member

Summary

Modernizes the OpenIDM Docker images and broadens their multi-architecture build matrix, and improves CI diagnostics for the Docker smoke tests. Ported from OpenIdentityPlatform/OpenDJ#655, adapted to OpenIDM's Java 17+ requirement.

  • Ubuntu image (Dockerfile): switch the base image from eclipse-temurin:25-jre-jammy to eclipse-temurin:25-jre-noble (Ubuntu 22.04 → 24.04).
  • Alpine image (Dockerfile-alpine): bump the JDK from openjdk17 to openjdk25-jre, aligning the Alpine runtime with the Ubuntu JRE 25 image and enabling linux/riscv64.
  • Workflows (build.yml, release.yml): add linux/riscv64 to both the Ubuntu and Alpine docker build platforms.
  • CI diagnostics (build.yml): print docker logs test at the end of both Docker test steps so container output is captured on failed health checks.
  • Housekeeping (release.yml): add the CDDL license header.

Platform coverage

Image Platforms
Ubuntu / Noble (Dockerfile) linux/amd64, linux/arm64/8, linux/ppc64le, linux/s390x, linux/riscv64
Alpine (Dockerfile-alpine) linux/amd64, linux/arm64/8, linux/s390x, linux/ppc64le, linux/riscv64

Why linux/386 is not included

Unlike OpenDJ (which supports Java 11–25), OpenIDM is compiled for Java 17+ (maven.compiler.target=17 in the root pom.xml). Alpine ships no Java 17+ build for 32-bit x86 (linux/386) — only openjdk11 — so a linux/386 image could not run OpenIDM. It is therefore intentionally excluded, and no conditional/per-architecture JDK selection is needed: a single openjdk25-jre covers every target architecture.

Notes

  • linux/arm/v6 and linux/arm/v7 remain excluded: neither Alpine nor eclipse-temurin publishes an OpenJDK for those architectures.
  • The docker build steps use continue-on-error: true, so an architecture without a published base/JDK won't fail the whole job.

Testing

  • build-docker (Ubuntu/Noble) and build-docker-alpine jobs build across the listed platforms, including the existing "Docker test" smoke tests (now with container logs printed).

vharseko added 2 commits June 23, 2026 19:59
- Dockerfile: bump base image eclipse-temurin:25-jre-jammy -> 25-jre-noble (Ubuntu 24.04)
- Dockerfile-alpine: bump JDK openjdk17 -> openjdk25-jre to align the Alpine runtime with the Ubuntu JRE 25 image and enable linux/riscv64
- build.yml / release.yml: add linux/riscv64 to both the Ubuntu and Alpine docker build platforms
- release.yml: add the CDDL license header

linux/386 is intentionally not added: OpenIDM is compiled for Java 17+ (maven.compiler.target=17) and Alpine ships no Java 17+ build for 32-bit x86 (only openjdk11), so a 386 image cannot run OpenIDM.
Add "docker logs test" as the final command of both Docker test steps
(build-docker and build-docker-alpine) in build.yml, so the container
output is captured in CI for easier diagnosis of failed health checks.
@vharseko vharseko requested a review from maximthomas June 23, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants