Runtime assemblies and Docker images for the Eclipse CFM platform. Each module bundles a set of Eclipse Dataspace Components (EDC) BOMs into a runnable fat JAR and packages it as a container image published to the GitHub Container Registry (GHCR).
| Module | Description | Image |
|---|---|---|
controlplane |
EDC control plane (virtual base + SQL, DCP, NATS) | ghcr.io/eclipse-cfm/platform-images/controlplane |
identity-hub |
EDC IdentityHub (OAuth2 + SQL feature set) | ghcr.io/eclipse-cfm/platform-images/identity-hub |
issuerservice |
EDC IssuerService (OAuth2 + SQL feature set) | ghcr.io/eclipse-cfm/platform-images/issuerservice |
Please note that the issuerservice is "unpinionated", that means it does not have any specific attestation sources. In
a production environment, one would likely want to build an opinionated image that includes specific use-case-related
attestation sources. Learn more about attestation sources in
the IdentityHub documentation.
All images are based on eclipse-temurin JRE, ship the
OpenTelemetry Java agent for observability,
and expose a health check at http://localhost:8080/api/check/health.
The project uses the Gradle wrapper; a JDK 23 (or newer) toolchain is expected.
Build a module's fat JAR:
./gradlew :controlplane:shadowJarThe JAR is written to <module>/build/libs/<module>.jar.
The container build uses the module's Dockerfile (under <module>/src/main/docker/) with two build
arguments — the fat JAR and the OpenTelemetry agent:
# 1. build the fat JAR and download the OTel agent
./gradlew :controlplane:dockerizeOptional Docker build args:
JVM_ARGS— extra JVM flags (e.g. memory settings) passed to the runtime.
docker run --rm -p 8080:8080 ghcr.io/eclipse-cfm/platform-images/controlplane:latestCI is defined in .github/workflows/docker-images.yaml and runs on
every push (all branches and tags). It builds each module's image in a matrix, and publishes to GHCR
depending on the trigger:
| Trigger | Images built | Published tags | GitHub release |
|---|---|---|---|
| Push to any branch | ✅ | — (build only, not pushed) | — |
Push to main |
✅ | latest, <short-sha> |
— |
Tag created (e.g. v1.2.3) |
✅ | latest, <short-sha>, <tag-name> |
✅ (tag name) |
Push a tag to publish tagged images and create the corresponding GitHub release:
git tag v1.2.3
git push origin v1.2.3