GraalVM Community Edition コンテナイメージ #

コンテナベースの開発をサポートするため、GraalVM Community Edition コンテナイメージは GitHub Container Registry に公開されています。

リポジトリ #

アーキテクチャと Java のバージョンに応じて、異なる GraalVM Community Edition コンテナイメージが提供されており、名前の一部に -community が含まれています。これらは、native-image-communityjdk-communitytruffleruby-communitynodejs-community、および graalpy-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 Community Edition コンテナイメージは、Oracle Linux のスリムイメージに基づいており、デフォルトのパッケージマネージャーは microdnf です。

GraalVM Community Edition コンテナイメージの完全なリストはこちらをご覧ください。

タグ #

各リポジトリには、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. 23 などの特定の JDK 機能バージョンの GraalVM JDK のコンテナイメージをプルするには、次を実行します。
     docker pull ghcr.io/graalvm/jdk-community:23
    

    または、Dockerfile でコンテナイメージをベースイメージとして使用するには、次を使用します。

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

    GraalVM JDK と Graal コンパイラがプリインストールされた、サイズがコンパクトな GraalVM Community Edition コンテナイメージをプルしました。

  2. 23 などの特定の JDK 機能バージョンの native-image ユーティリティを含むコンテナイメージをプルするには、次を実行します。
     docker pull ghcr.io/graalvm/native-image-community:23
    

    または、完全に静的にリンクされた実行可能ファイルを作成するために、musl libc ツールチェーンを備えた native-image ユーティリティを使用してコンテナイメージをプルするには、次を使用します。

     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
    

    出力には、インストールされた GraalVM のバージョンと場所に対応する値を持つ環境変数 JAVA_HOME が含まれます。

    Java のバージョンを確認するには、次を実行します。

     java -version
    

    native-image のバージョンを確認するには、次を実行します。

     native-image --version
    
  4. プロセッサアーキテクチャを指定せずに docker pull を呼び出すと、Docker クライアントに一致するプロセッサアーキテクチャのコンテナイメージがプルされます。別のプラットフォームアーキテクチャのコンテナイメージをプルするには、--platform オプションと linux/amd64 または linux/aarch64 のいずれかを使用して、目的のプラットフォームアーキテクチャを指定します。
     docker pull --platform linux/aarch64 ghcr.io/graalvm/native-image-community:23
    

Oracle GraalVM コンテナイメージ #

Oracle GraalVM コンテナイメージは、Oracle Container Registry の下で、GraalVM Free Terms and Conditions (GFTC) ライセンスに基づいて公開されています。Oracle Help Centerで詳細をご覧ください。

  • Tiny Java Containers: GraalVM Native Image がコンテナ化に最適なネイティブ実行可能ファイルを生成する方法を学びます。

お問い合わせ