Oracle GraalVMコンテナ・イメージの開始

Oracle GraalVMコンテナ・イメージは、GraalVM Free Terms and Conditions (GFTC)ライセンスに基づいてOracle Container Registry (OCR)で入手できます。

次のイメージを使用できます:

イメージ名 説明
jdk-ee Oracle GraalVM JDKを含むコンパクト・イメージ
native-image-ee Oracle GraalVMのnative-imageユーティリティとJDKを含むコンパクト・イメージ
enterprise Oracle GraalVM JDKと、追加の機能のインストールを可能にするgu (Graal Updater)ユーティリティを提供します
nodejs-ee Node.jsランタイムとOracle GraalVM JDKが含まれています

イメージのタグ付けの構造と可用性

どちらのリポジトリも、AMD64およびAArch64プロセッサ・アーキテクチャのコンテナ・イメージを提供し、Oracle Linuxバージョン7、8または9を選択できます。

Oracle GraalVMは、/usr/lib64/graalvm/graalvm-java<$FeatureVersion>にインストールされます(<$FeatureVersion>1720など)。たとえば、Oracle GraalVM for JDK 17は/usr/lib64/graalvm/graalvm-java17にインストールされます。javajavacnative-image、およびその他のバイナリを含むすべてのバイナリは、alternativesコマンドを使用してグローバル・コマンドとして使用できます。

タグ

各リポジトリには、Javaバージョン、ビルド番号、Oracle Linuxバージョンなど、必要な安定性のレベルを選択できる複数のタグが用意されています。Oracle GraalVMイメージ・タグでは、次の命名規則を使用します。

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

次のタグは、(上部にある)最も特定的なタグから(下部にある)最も特定的でないタグの順にリストされています。最も特定的なタグは一意であり、常に同じイメージを指しますが、より特定的でないタグは時間の経過とともに新しいイメージ・バリアントを指します。

17.0.8-ol9-20230904
17.0.8-ol9
17.0.8
17-ol9
17

{IMAGE_TAG}の構造は次のとおりです:

{OS_VERSION}-java{JAVA_VERSION}-{MAJOR_RELEASE}.{MINOR_RELEASE}.{PATCH_RELEASE}-b{BUILD_NUMBER}

この構造は、様々なレベルの特定性を持つ参照を許可するように設計されています。有効なイメージ・タグの最小値はjava{JAVA_VERSION}-{MAJOR_RELEASE}です。たとえば、次のタグはすべて有効なイメージ・タグです:

java17-22
java17-22.3
java17-22.3.0
java17-22.3.0-b1
ol8-java17-22.3.1-b2

ol8-java17-22.3.1ol8-java17-22.3.1-b1など、最も具体的なタグを使用することをお薦めします。-b1は、イメージにパッチが必要なことを示し、この特定のビルドは変更されません。

完全には指定されていないイメージ・タグ(たとえば、java17-22)は安定しておらず、使用可能な最新のOracle GraalVM 22.xリリースを参照するように時間の経過とともに変化します。latest (またはタグなし)を使用すると、特定のイメージ、最新のOS、最新のJavaバージョンおよび最新のGraalVMバージョンを常に入手できます。

スタート・ガイド

Oracle GraalVMイメージをOracle Container Registryからプルするには、ライセンス契約に同意する必要があります。

  1. Oracle Container Registryに移動し、「GraalVM」タイルをクリックします。GraalVMリポジトリの説明ページにリダイレクトされます。

  2. イメージ・リポジトリをクリックします。たとえば、JDKを含むコンパクトなコンテナ・イメージが必要な場合は、「jdk-ee」リンクをクリックします。

  3. 「サインイン」をクリックします。これにより、Oracleシングル・サインオン・ページが表示されます。

  4. Oracleアカウントでサインインします。既存のOracleアカウントがない場合は作成できます。

  5. サインインすると、ライセンスの確認画面が表示されます。「続行」をクリックし、「同意」をクリックしてライセンスに同意して続行します。

  6. ライセンスを確認し、同意します。

  7. 端末ウィンドウを開き、次のようにOracleアカウントを使用してOracle Container Registryにログインします:

     docker login container-registry.oracle.com
     Username: <oracle sso username>
     Password: <oracle sso password>
     Login successful.
    
  8. docker pullコマンドを使用してイメージをプルします。ページに表示されるタグのリストから、最新のタグまたは特定のタグを使用します。たとえば:

     docker pull container-registry.oracle.com/graalvm/jdk-ee:latest 
     latest: Pulling from graalvm/jdk-ee
     58c4eaffce77: Pull complete 
     8800a93aa49d: Pull complete 
     da2734fc865b: Pull complete 
     Digest: sha256:ccde822a1119da5f95e97b331632e6219b0ae29f81f516d1c0b9787
     Status: Downloaded newer image for container-registry.oracle.com/graalvm/jdk-ee:latest
     container-registry.oracle.com/graalvm/jdk-ee:latest
    
  9. jdk-eeイメージからコンテナを起動し、次のrunコマンドを使用してbashセッションを入力します:

     docker run -it --rm --entrypoint /bin/bash container-registry.oracle.com/graalvm/native-image:17
    
  10. envコマンドを実行して、Oracle GraalVMのバージョンとストレージの場所を確認します:

    bash-5.1# env
    

    出力メッセージには、インストールされているOracle GraalVMのバージョンとインストールされている場所を示すJAVA_HOMEの値が含まれています。

  11. Oracle GraalVMのbinディレクトリの内容を確認します:

    bash-5.1# ls /usr/lib64/graalvm/graalvm22-ee-java17/bin
    
  12. 次のコマンドを実行して、Javaバージョンを確認します:

    bash-5.1# java -version
    

    出力には、ランタイム環境とそのバージョン番号に関する情報が含まれています。

native-image-eeイメージをプルすると、コンテナを起動し、native-image-eeイメージからすぐにセッションに入ることができます:

docker run -it --rm container-registry.oracle.com/graalvm/native-image-ee:latest bash

前述のステップ10から12に従って、インストールされているOracle GraalVMのバージョンと場所を確認します。この場合、binディレクトリにはjavaおよびnative-imageランチャが含まれています。バージョンをチェックします:

native-image --version
java -version

関連情報