BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Jib で Java アプリケーションをコンテナ化

Jib で Java アプリケーションをコンテナ化

原文(投稿日:2020/08/24)へのリンク

Jib は、Java アプリケーションのためのスペース効率的で最適化された Docker と OCI イメージを構築するためのオープンソースツールだ。開発者や CI/CD の経験をさらに向上させるために、常に新しい新機能を追加している。目玉機能としては、Jib プラグイン拡張フレームワーク、人気のあるアプリケーションフレームワークのネイティブサポート、CI/CD パフォーマンスの向上、Skaffold を使用したローカル Kubernetes 上での開発体験の強化などが挙げられる。

Jib プラグイン拡張フレームワーク

Jib の真の力は、Java アプリケーション用に最適化された Docker と OCI イメージを、再現性のある宣言的な方法で、コンテナのベストプラクティスを適用しながら、Docker デーモンなしで構築する能力にある。新しい Jib プラグイン拡張フレームワークで、ユーザーは Jib を拡張して Java アプリケーションイメージのあらゆる側面を微調整できるようになった。拡張フレームワークは Container Build Plan Specification に基づいている。これは、イメージのビルド計画を記述するための汎用的でツールに依存しない仕様だ。コアJib チームはすでにいくつかの便利な拡張機能をリリースしている。それはコンテナ内で動作する Java アプリケーションを高速に起動するための GraalVM ネイティブイメージ拡張のようなものだ。新しい拡張機能は、Maven と Gradle の両方のためのサードパーティプラグインとして構築され、貢献できる。

アプリケーションフレームワークのネイティブサポート

Spring BootQuarkus のような人気のあるアプリケーションフレームワークのいくつかは、Jib からネイティブサポートを受けられるようになった。Spring Boot の場合、Jib のパッケージ化されたコンテナ化モードは、コンテナ化に不向きな傾向のある Fat Spring Boot JAR ではなく、オリジナルの Thin アプリケーション JAR をコンテナ化することで革新的なサポートを提供する。Jib コアチームは、Quarkus 用のファーストパーティの Jib MavenGradle 拡張も公開した。これにより、Quarkus イメージの設定と構築方法を完全に制御できるようになる。これらの拡張機能はまだ実験的なものであり、複雑なプロジェクトの構築に失敗する可能性があることに注意が必要だ。

強化された CI/CD サポート

Jib は Docker デーモンに依存しないので、対応するベースイメージをダウンロードすることなくイメージを作成してプッシュできる。例えば、典型的な Java ベースの Dockerfile には、FROM openjdk:11-jre-slim のような行が含まれており、ベースイメージを指定する。Docker イメージキャッシュにない場合、Docker デーモンはこのベースイメージをダウンロードしなければならない。これはCI/CD環境では一般的なことだ。しかし、Jib にはいくつかのスマートさが組み込まれている。それはベースイメージのダウンロードをスキップするための最良の努力をしている。CI/CD パイプラインに Jib を組み込むことで、ビルド時間を短縮し、ネットワーク帯域幅とストレージ容量を節約できる。

Skaffold によるローカル Kubernetes 開発支援

Skaffoldは、高速で再現性の高いローカル Kubernetes 開発ワークフローを提供する最適化されたツールだ。これは Jib と統合できるようになった。この統合により、Skaffold の Java イメージの設定なし自動同期が可能になった。自動同期機能を使えば、クラスファイルの変更やリソースファイルの変更を実行中のコンテナに同期できる。これには Jib はコンテナ/ポッドの再構築や再配置は必要無い。この設定は、Jib のデフォルトのビルドモードである、展開した non-WAR アプリケーションでのみ動作することに注意が必要だ。さらに、基礎となる Java アプリケーションサーバは、リロードや再起動もサポートしなければならない。

プロジェクトのサンプルセクションでは、Jib を使い始めるためのいくつかの例を紹介している。

この記事に星をつける

おすすめ度
スタイル

BT