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 指令作為全域指令使用。

注意:對於非基於 RPM 的 GraalVM 映像檔 (graalvm-communitypython-communitytruffleruby-community),安裝位置位於 /opt/ 下 (分別為 /opt/graalvm-community-java<$FeatureVersion>//opt/truffleruby-<$GRAALVM_VERSION>//opt/graalpy-<$GRAALVM_VERSION>/)。

注意:GraalVM 社群版容器映像檔是基於 Oracle Linux 精簡映像檔,且預設套件管理員為 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. 若要提取具有 native-image 公用程式的容器映像檔,適用於特定的 JDK 功能版本,例如 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 如何產生適用於容器化的原生可執行檔。

與我們聯繫