GraalVM 社区版容器镜像 #

为了支持基于容器的开发,GraalVM 社区版容器镜像发布在 GitHub 容器注册表 中。

仓库 #

根据架构和 Java 版本的不同,提供了不同的 GraalVM 社区版容器镜像,这些镜像的名称包含 -community。 它们是:native-image-communityjdk-communitytruffleruby-communitynodejs-communitygraalpy-community。 这些容器镜像是多架构的,支持 x64 和 AArch64 处理器架构,并可以选择 Oracle Linux 版本 7、8 或 9。

GraalVM 安装在 /usr/lib64/graalvm/graalvm-community-java<$FeatureVersion>/ 中,其中 <$FeatureVersion>172123 等等。 例如,适用于 JDK 23 的 GraalVM 安装在 /usr/lib64/graalvm/graalvm-community-java23/ 中。 所有二进制文件,包括 javajavacnative-image 和其他二进制文件,都通过 alternatives 命令作为全局命令提供。

注意:对于 GraalVM 非 RPM 基镜像(graalvm-communitypython-communitytruffleruby-community),安装位置位于 /opt/ 下(分别为 /opt/graalvm-community-java<$FeatureVersion>//opt/truffleruby-<$GRAALVM_VERSION>//opt/graalpy-<$GRAALVM_VERSION>/)。

注意:GraalVM 社区版容器镜像基于 Oracle Linux slim 镜像,默认的包管理器为 microdnf

查看完整的 GraalVM 社区版容器镜像列表 这里.

标签 #

每个仓库提供多个标签,您可以根据需要选择稳定性级别,包括 Java 版本、构建号和 Oracle Linux 版本。 镜像标签使用以下命名约定

$version[-muslib(for native image only)][-$platform][-$buildnumber]

以下标签从最具体的标签(顶部)到最不具体的标签(底部)列出。 最具体的标签是唯一的,始终指向同一个镜像,而较不具体的标签随着时间的推移会指向更新的镜像变体。 例如

22.0.1-ol9-20240416
22.0.1-ol9
22.0.1
22-ol9
22

拉取镜像 #

  1. 要拉取适用于特定 JDK 功能版本的 GraalVM JDK 容器镜像,例如 23,请运行
     docker pull ghcr.io/graalvm/jdk-community:23
    

    或者,要在您的 Dockerfile 中使用容器镜像作为基础镜像,请使用

     FROM ghcr.io/graalvm/jdk-community:23
    

    您已经拉取了一个体积紧凑的 GraalVM 社区版容器镜像,其中预安装了 GraalVM JDK 和 Graal 编译器。

  2. 要拉取包含适用于特定 JDK 功能版本的 native-image 实用程序的容器镜像,例如 23,请运行
     docker pull ghcr.io/graalvm/native-image-community:23
    

    或者,要拉取包含 native-image 实用程序和 musl libc 工具链的容器镜像,以创建完全静态链接的可执行文件,请使用

     docker pull ghcr.io/graalvm/native-image-community:23-muslib
    

    或者,要在您的 Dockerfile 中使用容器镜像作为基础镜像,请使用

     FROM ghcr.io/graalvm/native-image-community:23-muslib
    
  3. 要验证,请启动容器并进入 Bash 会话
     docker run -it --rm --entrypoint /bin/bash ghcr.io/graalvm/native-image-community:23
    

    要检查 GraalVM 的版本及其安装位置,请从 Bash 提示符运行 env 命令

     env
    

    输出包括环境变量 JAVA_HOME,其值对应于已安装的 GraalVM 版本和位置。

    要检查 Java 版本,请运行

     java -version
    

    要检查 native-image 版本,请运行

     native-image --version
    
  4. 调用 docker pull 而不指定处理器架构会拉取与您的 Docker 客户端匹配的处理器架构的容器镜像。 要拉取不同平台架构的容器镜像,请使用 --platform 选项指定所需的平台架构,并使用 linux/amd64linux/aarch64,如下所示
     docker pull --platform linux/aarch64 ghcr.io/graalvm/native-image-community:23
    

Oracle GraalVM 容器镜像 #

Oracle GraalVM 容器镜像发布在 Oracle 容器注册表 中,根据 GraalVM 免费条款和条件 (GFTC) 许可。 在 Oracle 帮助中心 中了解更多信息。

  • 小型 Java 容器:了解 GraalVM Native Image 如何生成适合容器化的原生可执行文件。

联系我们