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
@vharseko vharseko added the ci CI/CD, build and release workflows label Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD, build and release workflows docker

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants