Eclipse Temurin Java images for Pterodactyl and Pelican panels. Every image is multi-arch (linux/arm64 + linux/amd64), so the same egg works on ARM nodes (Oracle Ampere, Raspberry Pi 4/5, AWS Graviton, Hetzner CAX) and on x86 nodes.
| Image | Java | Typical use |
|---|---|---|
ghcr.io/thatstupidfish/java8 |
8 | Minecraft 1.16.5 and older, legacy Forge |
ghcr.io/thatstupidfish/java11 |
11 | Older plugins/apps that need 11 |
ghcr.io/thatstupidfish/java17 |
17 | Minecraft 1.17 – 1.20.4 |
ghcr.io/thatstupidfish/java21 |
21 | Minecraft 1.20.5 – 1.21.x |
ghcr.io/thatstupidfish/java25 |
25 | Minecraft 26.1+ (current Paper/Purpur) |
Images are rebuilt weekly to pick up Temurin and Ubuntu security updates. Each push to main also publishes a sha-<commit> tag if you want to pin a build.
-
Admin → Nests → (your nest) → (your egg).
-
In Docker Images, add one line per image in
Display Name|imageform, e.g.Java 25|ghcr.io/thatstupidfish/java25 Java 21|ghcr.io/thatstupidfish/java21 Java 17|ghcr.io/thatstupidfish/java17 Java 8|ghcr.io/thatstupidfish/java8 -
Save, then pick the image per server under Server → Startup → Docker Image.
- Admin → Eggs → (your egg).
- Under Docker Images, add entries with the display name as the key and the image as the value, e.g.
Java 25→ghcr.io/thatstupidfish/java25. - Select the image per server on the server's Startup page.
- Runs as the
containeruser with/home/containeras the working directory, and works with whatever UID Wings assigns. {{VARIABLE}}placeholders in the startup command are replaced with the server's environment variables, and shell operators (&&,|,;) are supported.tiniruns as PID 1 withSTOPSIGNAL SIGINT, so panel stop and kill signals reach the Java process and the server shuts down cleanly.TZdefaults toUTC, andINTERNAL_IPis set to the container's Docker IP.- Includes common tools used by egg install and startup scripts:
curl,git,jq,zip/unzip,tar,sqlite3,lsof,iproute2,fontconfig.
All versions share one Dockerfile. JAVA_VERSION selects the Temurin release:
docker buildx build --platform linux/arm64 --build-arg JAVA_VERSION=21 --load -t java21-test .
./scripts/smoke-test.sh java21-test 21 linux/arm64The smoke test runs the image the way Wings does: a non-root UID, a bind-mounted /home/container, and a templated STARTUP command. It checks the Java version, the CPU architecture, variable substitution and write access. CI (.github/workflows/build.yml) runs this test on arm64 before it publishes each image to GHCR.