GraalVM CE (JDK + native-image) plus gepinntes Gradle in einem schlanken
glibc-Image — die souveräne Build-Umgebung für Kotlin/JVM-CI im Chameleon-Way-
Produktkosmos. Ersetzt externe GitHub-Setup-Actions (setup-java, setup-graalvm)
durch ein versioniertes, reproduzierbares Image als container: in Forgejo-Workflows.
| Tool | Version | Zweck |
|---|---|---|
| GraalVM CE (JDK) | 25.0.2 | JVM-Build, Tests, Detekt, Kover |
native-image | 25.0.2 | nativeCompile (kleine, schnelle Binaries) |
| Gradle | 9.6.1 | Build-Orchestrierung |
Basis: debian:bookworm-slim (glibc — native-image braucht eine glibc-C-Toolchain;
gcc + zlib sind vorinstalliert). Läuft als non-root User builder.
Das Tag encodiert Toolchain und Release:
| Tag | Beispiel | Bedeutung |
|---|---|---|
<semrel>-<graalvm-major>-<gradle-major> | 1.0.0-25-9 | immutable (Release + Toolchain) |
<graalvm-major>-<gradle-major> | 25-9 | float (neuester Release der Toolchain) |
latest | latest | float |
jobs:
quality-gates:
runs-on: ubuntu-22.04
container:
image: tcwlab/graalvm:25-9
steps:
- name: Checkout (shell)
env:
GITHUB_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
run: |
git init .
git remote add origin \
"https://oauth2:${GITHUB_TOKEN}@git.mon.k8b.co/${GITHUB_REPOSITORY}.git"
git fetch --depth=1 origin "${GITHUB_SHA}"
git checkout FETCH_HEAD
- name: Quality-Gates
run: ./gradlew check --no-daemon # oder: gradle check
JAVA_HOME, GRADLE_HOME und PATH sind gesetzt; ./gradlew (Wrapper) wie auch das
gebündelte gradle funktionieren.
linux/amd64 und linux/arm64 (Multi-Arch-Manifest).
docker buildx build --platform linux/amd64,linux/arm64 \
--build-arg GRAALVM_VERSION=25.0.2 --build-arg GRADLE_VERSION=9.6.1 \
-t tcwlab/graalvm:25-9 --push .
Siehe LICENSE.
Content type
Image
Digest
sha256:32d8c9347…
Size
582.3 MB
Last updated
3 months ago
docker pull tcwlab/graalvm