A curated collection of core Docker images for Realm's egg system. Each image is rebuilt periodically to keep dependencies up to date.
Images are published to ghcr.io/realmopensource under the yolks, games, and installers namespaces. The
following logic determines which namespace an image uses:
oses— base images with core packages to get you started.games— images in thegamesfolder, built for running a specific game or type of game.installers— images in theinstallersdirectory, used by egg install scripts rather than running servers. They pre-install common tools likecurlandwgetto speed up installations.yolks— generic runtime images (Java, Node.js, Python, Go, etc.) that eggs can swap between.
All images support linux/amd64 and linux/arm64 unless otherwise noted. OpenJ9 variants (java_8j9,
java_11j9, java_16j9, etc.) are amd64-only because IBM Semeru does not publish arm64 manifests for
every version. On arm64 nodes, use the matching HotSpot tag instead (for example java_17 instead of
java_17j9).
When adding a new version to an existing image, such as java v42, add it under a child folder of java — for
example java/42/Dockerfile. Update the matching .github/workflows file so the new version is tagged correctly.
-
rustghcr.io/realmopensource/games:rust
sourceghcr.io/realmopensource/games:source
hytaleghcr.io/realmopensource/games:hytale
conan_exilesghcr.io/realmopensource/games:conan_exiles
-
go1.14—ghcr.io/realmopensource/yolks:go_1.14go1.15—ghcr.io/realmopensource/yolks:go_1.15go1.16—ghcr.io/realmopensource/yolks:go_1.16go1.17—ghcr.io/realmopensource/yolks:go_1.17go1.18—ghcr.io/realmopensource/yolks:go_1.18go1.19—ghcr.io/realmopensource/yolks:go_1.19go1.20—ghcr.io/realmopensource/yolks:go_1.20go1.21—ghcr.io/realmopensource/yolks:go_1.21go1.22—ghcr.io/realmopensource/yolks:go_1.22go1.23—ghcr.io/realmopensource/yolks:go_1.23go1.24—ghcr.io/realmopensource/yolks:go_1.24go1.25—ghcr.io/realmopensource/yolks:go_1.25go1.26—ghcr.io/realmopensource/yolks:go_1.26,ghcr.io/realmopensource/yolks:go_latest
-
ghcr.io/realmopensource/yolks:java_8,java_8j9,java_11,java_11j9,java_16,java_16j9java_17,java_17j9,java_18,java_18j9,java_19,java_19j9java_21,java_22,java_23,java_24,java_25
-
ghcr.io/realmopensource/yolks:nodejs_12throughnodejs_20
-
ghcr.io/realmopensource/yolks:python_3.7throughpython_3.11
ghcr.io/realmopensource/installers:alpineghcr.io/realmopensource/installers:debian
Base yolk images (java, nodejs, python, go, oses, installers) publish independently. The games
workflow waits up to three minutes for ghcr.io/realmopensource/yolks:java_25 before building game images.
Run build java first (workflow dispatch), then build games. If java_25 is missing, the games workflow fails
with a clear error instead of pulling images from another registry.
If every workflow fails at the push step, the org token cannot publish packages yet. Fix this in GitHub:
- Org
realmopensource→ Settings → Actions → General → Workflow permissions → Read and write permissions - Org → Settings → Actions → General → enable workflows to use the default
GITHUB_TOKENwith package write access - After the first successful publish, open each new package under Packages → Package settings → Change visibility → Public
- Link packages to this repository where possible (Connect repository)
Workflows use permissions: packages: write, id-token: write, login via github.actor, and provenance: false so GHCR accepts the push.