← All images

java Languages & Runtimes

Shell-less OpenJDK 21 JRE built on Wolfi.

Size 254 MB Arch x86_64, aarch64 User nonroot (65532) Updated today Upstream openjdk.org

Pull this image

docker pull ghcr.io/rtvkiz/minimal-java:latest

Details

Repository
ghcr.io/rtvkiz/minimal-java
Size (compressed)
254 MB
Built
2026-09-28T23:20:50Z (today)
Architectures
x86_64, aarch64
Primary package
openjdk-21
Entrypoint
/usr/bin/java
User
nonroot (65532)
Working dir
/app
Architectures
x86_64, aarch64
Environment
JAVA_HOME=/usr/lib/jvm/java-27-openjdkPATH=/usr/lib/jvm/java-27-openjdk/bin:/usr/bin:/binLANG=C.UTF-8
Labels
org.opencontainers.image.titleminimal-java
org.opencontainers.image.descriptionHardened shell-less OpenJDK 21 JRE image built on Wolfi with daily CVE patches
org.opencontainers.image.urlhttps://github.com/rtvkiz/minimal
org.opencontainers.image.sourcehttps://github.com/rtvkiz/minimal/tree/main/images/java
org.opencontainers.image.licensesApache-2.0
TagPullPublished
27 ghcr.io/rtvkiz/minimal-java:27 2026-09-28
27.0 ghcr.io/rtvkiz/minimal-java:27.0 2026-09-28
27.0.0-r1 ghcr.io/rtvkiz/minimal-java:27.0.0-r1 2026-09-28
27.0.0-r1-20260928 ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260928 2026-09-28
latest ghcr.io/rtvkiz/minimal-java:latest 2026-09-28
27-dev ghcr.io/rtvkiz/minimal-java:27-dev 2026-09-28
27.0-dev ghcr.io/rtvkiz/minimal-java:27.0-dev 2026-09-28
27.0.0-r1-20260928-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260928-dev 2026-09-28
27.0.0-r1-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-dev 2026-09-28
latest-dev ghcr.io/rtvkiz/minimal-java:latest-dev 2026-09-28
27.0.0-r1-20260927 ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260927 2026-09-27
27.0.0-r1-20260927-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260927-dev 2026-09-27
27.0.0-r1-20260926 ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260926 2026-09-26
27.0.0-r1-20260926-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260926-dev 2026-09-26
27.0.0-r1-20260925 ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260925 2026-09-25
27.0.0-r1-20260925-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260925-dev 2026-09-25
27.0.0-r1-20260924 ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260924 2026-09-24
27.0.0-r1-20260924-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260924-dev 2026-09-24
27.0.0-r1-20260923 ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260923 2026-09-23
27.0.0-r1-20260923-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260923-dev 2026-09-23
27.0.0-r1-20260922 ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260922 2026-09-22
27.0.0-r1-20260922-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260922-dev 2026-09-22
27.0.0-r1-20260921 ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260921 2026-09-21
27.0.0-r1-20260921-dev ghcr.io/rtvkiz/minimal-java:27.0.0-r1-20260921-dev 2026-09-21
26 ghcr.io/rtvkiz/minimal-java:26 2026-09-21
26.0.2 ghcr.io/rtvkiz/minimal-java:26.0.2 2026-09-21
26.0.2.1-r2 ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2 2026-09-21
26.0.2.1-r2-20260921 ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-20260921 2026-09-21
26-dev ghcr.io/rtvkiz/minimal-java:26-dev 2026-09-21
26.0.2-dev ghcr.io/rtvkiz/minimal-java:26.0.2-dev 2026-09-21
26.0.2.1-r2-20260921-dev ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-20260921-dev 2026-09-21
26.0.2.1-r2-dev ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-dev 2026-09-21
26.0.2.1-r2-20260920 ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-20260920 2026-09-20
26.0.2.1-r2-20260920-dev ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-20260920-dev 2026-09-20
26.0.2.1-r2-20260919 ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-20260919 2026-09-19
26.0.2.1-r2-20260919-dev ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-20260919-dev 2026-09-19
26.0.2.1-r2-20260918 ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-20260918 2026-09-18
26.0.2.1-r2-20260918-dev ghcr.io/rtvkiz/minimal-java:26.0.2.1-r2-20260918-dev 2026-09-18

184 packages in the image, resolved from the SPDX SBOM.

PackageVersionLicense
alpine/ca-certificates20260909MPL-2.0 AND MIT
alsa-lib1.2.16.1-r2LGPL-2.1-or-later
alsa-libv1.2.16.1LGPL-2.1-or-later
alsa-lib1.2.16.1-r2LGPL-2.1-or-later
alsa-lib1.2.16.1-r2—
alsa-lib.yamlaf3540137e3e64182f21b81fd7497d503c8adc04Apache-2.0
brotliv1.2.0MIT
brotli.yaml9db3aeed30b6359289528ef564a4909f78faeac9Apache-2.0
bzip2.yaml8867ad015582e91734eb840c4363388869f71fc5Apache-2.0
ca-certificates20260909-r1MPL-2.0 AND MIT
ca-certificates20260909-r1(MPL-2.0 AND MIT)
ca-certificates20260909-r1—
ca-certificates-bundle20260909-r1MPL-2.0 AND MIT
ca-certificates-bundle20260909-r1(MPL-2.0 AND MIT)
ca-certificates-bundle20260909-r1—
ca-certificates.yamlee3eac73dda22e8dd32fa5fb3e3a1712a6e812d7Apache-2.0
dejavu-fontsversion_2_37Bitstream-Vera
freetype2.14.3-r6FTL OR GPL-2.0-or-later
freetype2.14.3-r6(FTL OR GPL-2.0-or-later)
freetype2.14.3-r6—
freetype.yaml79fbc3c9f8c7d24ebc59fe262c2578f975387c2dApache-2.0
freetype/freetypeVER-2-14-3FTL OR GPL-2.0-or-later
gcc.yaml794cf72f88e1b408eca5da0dbf5c5ed25543606dApache-2.0
giflib6.1.3-r1MIT
giflib6.1.3-r1MIT
giflib6.1.3-r1—
giflib.yamlcb7b2d42f6aec4553036e8deccdbe896eb73bd20Apache-2.0
git/bzip2bzip2-1.0.8MPL-2.0 AND MIT
git/glibcb4f51887c48ac82acfdb13f96d9eab5d120cb2b7LGPL-2.1-or-later
glibc-2.442.44-r7LGPL-2.1-or-later
glibc-2.442.44-r7LGPL-2.1-or-later
glibc-2.442.44-r7—
glibc-2.44-locale-posix2.44-r7LGPL-2.1-or-later
glibc-2.44-locale-posix2.44-r7LGPL-2.1-or-later
glibc-2.44-locale-posix2.44-r7—
glibc-2.44.yaml2f4fbb70b55156f2d4cabff471b50dab0e75aa89Apache-2.0
gnutls/libtasn1v4.21.0LGPL-2.1-or-later
gnutools/gccreleases/gcc-16.2.0GPL-3.0-or-later WITH GCC-exception-3.1
java-cacerts20260909-r1MPL-2.0 AND MIT
java-cacerts20260909-r1(MPL-2.0 AND MIT)
java-cacerts20260909-r1—
java-common-jre0.2-r3GPL-2.0-or-later
java-common-jre0.2-r3GPL-2.0-or-later
java-common-jre0.2-r3—
java-common.yaml828ef8a1f016990fae89f60c094c494eaeaff654Apache-2.0
jdk27ujdk-27+35GPL-2.0 WITH Classpath-exception-2.0
jrt-fs27—
lcms22.19.1-r2MIT AND GPL-3.0-only
lcms22.19.1-r2(MIT AND GPL-3.0-only)
lcms22.19.1-r2—
lcms2.yaml3be4812b7c852b960fb73933eb247e2bd972298dApache-2.0
ld-linux-2.442.44-r7LGPL-2.1-or-later
ld-linux-2.442.44-r7LGPL-2.1-or-later
ld-linux-2.442.44-r7—
libbrotlicommon11.2.0-r5MIT
libbrotlicommon11.2.0-r5MIT
libbrotlicommon11.2.0-r5—
libbrotlidec11.2.0-r5MIT
libbrotlidec11.2.0-r5MIT
libbrotlidec11.2.0-r5—
libbrotlienc11.2.0-r5MIT
libbrotlienc11.2.0-r5MIT
libbrotlienc11.2.0-r5—
libbz2-11.0.8-r24MPL-2.0 AND MIT
libbz2-11.0.8-r24(MPL-2.0 AND MIT)
libbz2-11.0.8-r24—
libcrypto33.6.4-r8Apache-2.0
libcrypto33.6.4-r8Apache-2.0
libcrypto33.6.4-r8—
libffi3.8.0-r1MIT
libffiv3.8.0MIT
libffi3.8.0-r1MIT
libffi3.8.0-r1—
libffi.yaml719d64d3fcaaae77a969bee96bbd6c1bbba9d9ddApache-2.0
libgcc16.2.0-r1GPL-3.0-or-later WITH GCC-exception-3.1
libgcc16.2.0-r1(GPL-3.0-or-later WITH GCC-exception-3.1)
libgcc16.2.0-r1—
libjpeg-turbo3.2.0-r4BSD-3-Clause AND IJG AND Zlib
libjpeg-turbo3.2.0BSD-3-Clause AND IJG AND Zlib
libjpeg-turbo3.2.0-r4(BSD-3-Clause AND IJG AND Zlib)
libjpeg-turbo3.2.0-r4—
libjpeg-turbo.yaml203e65dd274965582cb0226c6aa7ca368c2e684eApache-2.0
libpng1.6.58-r3libpng-2.0
libpngv1.6.58libpng-2.0
libpng1.6.58-r3libpng-2.0
libpng1.6.58-r3—
libpng.yamled6708a41ae306d9a14b1e088a7590c8278a9babApache-2.0
libssl33.6.4-r8Apache-2.0
libssl33.6.4-r8Apache-2.0
libssl33.6.4-r8—
libstdc++16.2.0-r1GPL-3.0-or-later WITH GCC-exception-3.1
libstdc++16.2.0-r1(GPL-3.0-or-later WITH GCC-exception-3.1)
libstdc++16.2.0-r1—
libtasn14.21.0-r6LGPL-2.1-or-later
libtasn14.21.0-r6LGPL-2.1-or-later
libtasn14.21.0-r6—
libtasn1.yaml3c7af87f8ce2048650267adce8430bc50a4cfeeeApache-2.0
libx111.8.13-r7XFree86-1.1
libx111.8.13-r7XFree86-1.1
libx111.8.13-r7—
libx11.yamleecac56ac7fa8eefdc88c3ce28b8d61d30a21109Apache-2.0
libxau1.0.12-r8MIT
libxau1.0.12-r8MIT
libxau1.0.12-r8—
libxau.yaml1e34086426b21c24ee80c9a7bf6ba146f3cba960Apache-2.0
libxcb1.17.0-r16MIT
libxcb1.17.0-r16MIT
libxcb1.17.0-r16—
libxcb.yamlec0f4c229323164654714800ce9a332169fd3aceApache-2.0
libxdmcp1.1.5-r11MIT
libxdmcp1.1.5-r11MIT
libxdmcp1.1.5-r11—
libxdmcp.yaml8c878070babf1de9996bf309b5b54dacd4ee8c1eApache-2.0
libxext1.3.7-r3MIT
libxext1.3.7-r3MIT
libxext1.3.7-r3—
libxext.yaml62088639a77e30bc4df60efce5e26c65128f4f95Apache-2.0
libxi1.8.3-r1MIT AND X11
libxi1.8.3-r1(MIT AND X11)
libxi1.8.3-r1—
libxi.yaml77c836474e6514dd0e511ced277b2549063b5618Apache-2.0
libxrender0.9.12-r9XFree86-1.1
libxrender0.9.12-r9XFree86-1.1
libxrender0.9.12-r9—
libxrender.yaml81dde3ec6cd2859447fea166b956502e0e0ed467Apache-2.0
libxtst1.2.5-r8XFree86-1.1
libxtst1.2.5-r8XFree86-1.1
libxtst1.2.5-r8—
libxtst.yaml1c8fdc57fe28006c25d9994c0701534b1c762ef5Apache-2.0
Little-CMSlcms2.19.1MIT AND GPL-3.0-only
openjdk-27-default-jvm27.0.0-r1GPL-2.0 WITH Classpath-exception-2.0
openjdk-27-default-jvm27.0.0-r1(GPL-2.0 WITH Classpath-exception-2.0)
openjdk-27-default-jvm27.0.0-r1—
openjdk-27-jre27.0.0-r1GPL-2.0 WITH Classpath-exception-2.0
openjdk-27-jre27.0.0-r1(GPL-2.0 WITH Classpath-exception-2.0)
openjdk-27-jre27.0.0-r1—
openjdk-27.yamle9c1ae3db2b5769e5654b6fa4f2919603f6c6a98Apache-2.0
opensslopenssl-4.0.2Apache-2.0
opensslopenssl-3.6.4Apache-2.0
openssl-4.0-libcrypto4.0.2-r2Apache-2.0
openssl-4.0-libcrypto4.0.2-r2Apache-2.0
openssl-4.0-libcrypto4.0.2-r2—
openssl-4.0-libssl4.0.2-r2Apache-2.0
openssl-4.0-libssl4.0.2-r2Apache-2.0
openssl-4.0-libssl4.0.2-r2—
openssl-4.0.yamlb8f04118437fbbf25bbaad575ccb9f2ed62b8503Apache-2.0
openssl-provider-legacy-allowed4.0.2-r3Apache-2.0
openssl-provider-legacy-allowed4.0.2-r3Apache-2.0
openssl-provider-legacy-allowed4.0.2-r3—
openssl-provider-legacy-allowed.yamlb8f04118437fbbf25bbaad575ccb9f2ed62b8503Apache-2.0
openssl.yamlbe56cfaac075e77bffb92439e0438bb31a21a2c7Apache-2.0
p/giflib/code6.1.3MIT
p11-kit0.26.5-r1BSD-3-Clause
p11-kit0.26.5BSD-3-Clause
p11-kit0.26.5-r1BSD-3-Clause
p11-kit0.26.5-r1—
p11-kit-trust0.26.5-r1BSD-3-Clause
p11-kit-trust0.26.5-r1BSD-3-Clause
p11-kit-trust0.26.5-r1—
p11-kit.yamlbdffd583c7ad7461ce9e15af532507f0ddb30960Apache-2.0
sha256:40d7e9f8e26dce556c72578a2708b0207b07cc01ee359adea1f5948132b22df820230201—
sha256:9d46452fd9c70e944021809bc933cc9c6f4fa12195fa6430838361197a065a19sha256:9d46452fd9c70e944021809bc933cc9c6f4fa12195fa6430838361197a065a19—
ttf-dejavu2.37-r9Bitstream-Vera
ttf-dejavu2.37-r9Bitstream-Vera
ttf-dejavu2.37-r9—
ttf-dejavu.yaml8bfd02b0cdce1c72d50ced1814f1d78c5616c836Apache-2.0
wolfi20230201—
wolfi-baselayout20230201-r30MIT
wolfi-baselayout20230201-r30MIT
wolfi-baselayout20230201-r30—
wolfi-baselayout.yamla4472f6292a5e48d6d611bf24c6e119b1a483e66Apache-2.0
xorg/lib/libx11libX11-1.8.13XFree86-1.1
xorg/lib/libxaulibXau-1.0.12MIT
xorg/lib/libxcblibxcb-1.17.0MIT
xorg/lib/libxdmcplibXdmcp-1.1.5MIT
xorg/lib/libxextlibXext-1.3.7MIT
xorg/lib/libxilibXi-1.8.3MIT AND X11
xorg/lib/libxrenderlibXrender-0.9.12XFree86-1.1
xorg/lib/libxtstlibXtst-1.2.5XFree86-1.1
zlib1.3.2.1_rc20260601-r0MPL-2.0 AND MIT
zlibe3dc0a85b7032e98380dec011bc8f2c2ee0d8fcaMPL-2.0 AND MIT
zlib1.3.2.1_rc20260601-r0(MPL-2.0 AND MIT)
zlib1.3.2.1_rc20260601-r0—
zlib.yamlf2ad881d0053f3f3b6b639e041b171fc0e5b7244Apache-2.0
5 medium 0 fixable
CVESeverityPackageInstalledFixed in
CVE-2026-77117 Medium glibc-2.44 2.44-r7 —
CVE-2026-80489 Medium glibc-2.44 2.44-r7 —
CVE-2026-8674 Medium glibc-2.44 2.44-r7 —
CVE-2026-89092 Medium glibc-2.44 2.44-r7 —
CVE-2026-90781 Medium alsa-lib 1.2.16.1-r2 —

Everything is verifiable without an account. Copy and run:

Build provenance (SLSA v1.0, Build L2)

gh attestation verify oci://ghcr.io/rtvkiz/minimal-java:latest --owner rtvkiz

Cosign signature

cosign verify \
  --certificate-identity-regexp='https://github.com/rtvkiz/minimal/' \
  --certificate-oidc-issuer='https://token.actions.githubusercontent.com' \
  ghcr.io/rtvkiz/minimal-java:latest

SBOM attestation (SPDX)

cosign verify-attestation --type spdxjson \
  --certificate-identity-regexp='https://github.com/rtvkiz/minimal/' \
  --certificate-oidc-issuer='https://token.actions.githubusercontent.com' \
  ghcr.io/rtvkiz/minimal-java:latest \
  | jq -r '.payload | @base64d | fromjson | .predicate'

Signatures are logged in the public Rekor transparency log.

More Languages & Runtimes images

Weighing this against another provider? The comparison pages publish head-to-head scan data with the raw dataset, including the images where Minimal comes off worse — or read the migration guide for what actually breaks when you switch.