Oracle GraalVMコンテナ・イメージ
Oracle GraalVMコンテナ・イメージは、GraalVM Free Terms and Conditions (GFTC)ライセンスに基づいてOracle Container Registry (OCR)で入手できます。
リポジトリ
Oracle GraalVMコンテナ・イメージは、jdkとnative-imageの2つのOCRリポジトリに公開されています。
| リポジトリ | 説明 | 
|---|---|
| jdk | Javaアプリケーションのコンパイルとデプロイの両方に使用できるOracle GraalVM JDK (native-imageユーティリティなし)を含むコンテナ・イメージを提供します。コンテナ・イメージ・タグを使用して、適切なJavaバージョンおよびOracle Linuxバージョンを選択します。 | 
    
| native-image | native-imageユーティリティと、アプリケーションをネイティブLinux実行可能ファイルにコンパイルするために必要なすべてのツールをOracle GraalVMコンテナ・イメージに提供します。これらのイメージは、通常、アプリケーションを実行可能ファイルにコンパイルして軽量コンテナ・イメージにパッケージ化するために、マルチステージ・ビルドで使用されます。コンテナ・イメージ・タグを使用して、JavaバージョンとOracle Linuxバージョン、および完全に静的にリンクされた実行可能ファイルを作成するためのmuslツールチェーンを含むバリアントを選択します。 | 
    
どちらのリポジトリも、x64およびAArch64プロセッサ・アーキテクチャのコンテナ・イメージを提供し、Oracle Linuxバージョン8または9を選択できます。
Oracle GraalVMは、/usr/lib64/graalvm/graalvm-java<$FeatureVersion>/にインストールされます(<$FeatureVersion>は17、21、23など)。
たとえば、Oracle GraalVM for JDK 23は/usr/lib64/graalvm/graalvm-java23/にインストールされます。java、javac、native-image、およびその他のバイナリを含むすべてのバイナリは、alternativesコマンドを使用してグローバル・コマンドとして使用できます。
タグ
各リポジトリには、Javaバージョン、ビルド番号、Oracle Linuxバージョンなど、必要な安定性のレベルを選択できる複数のタグが用意されています。Oracle GraalVMコンテナ・イメージ・タグでは、次の命名規則を使用します:
$version[-muslib(for native image only)][-$platform][-$buildnumber]
次のタグは、(上部にある)最も特定的なタグから(下部にある)最も特定的でないタグの順にリストされています。最も特定的なタグは一意であり、常に同じコンテナ・イメージを指しますが、より特定的でないタグは時間の経過とともに新しいコンテナ・イメージ・バリアントを指します。
23.0.1-ol9-20240504
23.0.1-ol9
23.0.1
23-ol9
23
イメージのプル
- 特定のJDK機能バージョン(23など)のOracle GraalVM JDKのコンテナ・イメージをプルするには、次を実行します:
    
docker pull container-registry.oracle.com/graalvm/jdk:23または、コンテナ・イメージをDockerfileのベース・イメージとして使用するには、次を使用します。
FROM container-registry.oracle.com/graalvm/jdk:23 - 特定のJDK機能バージョン(23など)のOracle GraalVM 
native-imageユーティリティのコンテナ・イメージをプルするには、次を実行します:docker pull container-registry.oracle.com/graalvm/native-image:23または、
musl libcツールチェーンを使用してOracle GraalVMnative-imageユーティリティのコンテナ・イメージをプルし、完全に静的にリンクされた実行可能ファイルを作成するには、次を実行します。docker pull container-registry.oracle.com/graalvm/native-image:23-muslibまたは、コンテナ・イメージをDockerfileのベース・イメージとして使用するには、次を使用します。
FROM container-registry.oracle.com/graalvm/native-image:23-muslib - 確認するには、コンテナを起動し、Bashセッションに入ります:
    
docker run -it --rm --entrypoint /bin/bash container-registry.oracle.com/graalvm/native-image:23Oracle GraalVMのバージョンとそのインストール場所を確認するには、
bashプロンプトからenvコマンドを実行します:env出力には、インストールされているOracle GraalVMのバージョンと場所に対応する値が設定された環境変数
JAVA_HOMEが含まれます。GraalVMのバージョンとそのインストール場所を確認するには、Bashプロンプトから
envコマンドを実行します:java -versionこの出力には、インストールされているOracle GraalVM Javaランタイム環境およびバージョン情報が表示されます。
native-imageバージョンを確認するには、Bashプロンプトから次のコマンドを実行します:native-image --versionこの出力には、インストールされているOracle GraalVM
native-imageユーティリティのバージョン情報が表示されます。 - プロセッサ・アーキテクチャを省略した
docker pullコマンドでは、Dockerクライアントに一致するプロセッサ・アーキテクチャのコンテナ・イメージがプルされます。別のプラットフォーム・アーキテクチャのコンテナ・イメージをプルするには、次のように--platformオプションとlinux/amd64またはlinux/aarch64のいずれかを使用して、目的のプラットフォーム・アーキテクチャを指定します:docker pull --platform linux/aarch64 container-registry.oracle.com/graalvm/native-image:23 
関連ドキュメント
- Tiny Java Containers: GraalVMネイティブ・イメージによるコンテナ化に最適なネイティブ実行可能ファイルの生成について学習します。