◀Table of Contents
GraalVM Community Edition Container Images
To support container-based development, GraalVM Community Edition container images are published in the GitHub Container Registry.
Repositories
There are different GraalVM Community Edition container images provided depending on the architecture and the Java version, and have -community as part of their names.
These are: native-image-community, jdk-community, truffleruby-community, nodejs-community, and graalpy-community.
The container images are multi-arch, for x64 and AArch64 processor architectures, with a choice of Oracle Linux versions 8, 9, and 10.
GraalVM is installed in /usr/lib64/graalvm/graalvm-community-java<$FeatureVersion>/ where <$FeatureVersion> is 17, 21, 24, and so on.
For instance, GraalVM for JDK 24 is installed in /usr/lib64/graalvm/graalvm-community-java24/.
All binaries, including java, javac, native-image, and other binaries are available as global commands via the alternatives command.
Note: For GraalVM non-RPM based images (graalvm-community, python-community, truffleruby-community), the installation location is under /opt/ (/opt/graalvm-community-java<$FeatureVersion>/, /opt/truffleruby-<$GRAALVM_VERSION>/, and /opt/graalpy-<$GRAALVM_VERSION>/ respectively).
Note: GraalVM Community Edition container images are based on Oracle Linux slim images, and the default package manager is
microdnf.
See a full list of GraalVM Community Edition container images here.
Tags
Each repository provides multiple tags that let you choose the level of stability you need including the Java version, build number, and the Oracle Linux version. Image tags use the following naming convention:
$version[-muslib(for native image only)][-$platform][-$buildnumber]
The following tags are listed from the most-specific tag (at the top) to the least-specific tag (at the bottom). The most-specific tag is unique and always points to the same image, while the less-specific tags point to newer image variants over time. For example:
24.0.1-ol9-20250318
24.0.1-ol9
24.0.1
24-ol9
24
Pulling Images
- To pull the container image for GraalVM JDK for a specific JDK feature version, such as 24, run:
docker pull ghcr.io/graalvm/jdk-community:24Alternatively, to use the container image as the base image in your Dockerfile, use:
FROM ghcr.io/graalvm/jdk-community:24You have pulled a size compact GraalVM Community Edition container image with the GraalVM JDK and the Graal compiler preinstalled.
- To pull the container image with the
native-imageutility for a specific JDK feature version, such as 24, run:docker pull ghcr.io/graalvm/native-image-community:24Alternatively, to pull the container image with the
native-imageutility with themusl libctoolchain to create fully statically linked executables, use:docker pull ghcr.io/graalvm/native-image-community:24-muslibAlternatively, to use the container image as the base image in your Dockerfile, use:
FROM ghcr.io/graalvm/native-image-community:24-muslib - To verify, start the container and enter a Bash session:
docker run -it --rm --entrypoint /bin/bash ghcr.io/graalvm/native-image-community:24To check the version of GraalVM and its installed location, run the
envcommand from the Bash prompt:envThe output includes the environment variable
JAVA_HOMEwith its value corresponding to the installed GraalVM version and location.To check the Java version, run:
java -versionTo check the
native-imageversion, run:native-image --version - Calling
docker pullwithout specifying a processor architecture pulls container images for the processor architecture that matches your Docker client. To pull a container image for a different platform architecture, specify the desired platform architecture with the--platformoption and eitherlinux/amd64orlinux/aarch64as follows:docker pull --platform linux/aarch64 ghcr.io/graalvm/native-image-community:24
Oracle GraalVM Container Images
Oracle GraalVM container images published in the Oracle Container Registry include the GraalVM Free Terms and Conditions (GFTC) license. Learn more at the Oracle Help Center.
Related Documentation
- Tiny Java Containers: Learn how GraalVM Native Image can generate native executables ideal for containerization.