BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Jib、Google提供のJavaコンテナイメージビルダ

Jib、Google提供のJavaコンテナイメージビルダ

原文(投稿日:2018/08/22)へのリンク

GoogleはJibを発表した。オープンソースのコンテナイメージビルダで、Java開発者はMavenGradleといった普及しているJavaツールを使ってJavaコンテナをビルドできる。開発者がDockerfileを書く必要はなく、イメージをビルドするためにDockerをインストールする必要もない。

JibはJavaで実装されMavenやGradleビルドの一部として動作する。JibのビルドアプローチはJavaアプリケーションを多数のレイヤに分解する。そのためコードに何か変更があったとき、アプリケーション全体ではなくこうした変更点だけが再ビルドされる。デフォルトではこれらのレイヤは開発アプリケーションとその実行時の依存性だけを含めたイメージであるdistrolessベースイメージの上に重ねられる。以下の図はDockerでのビルドとJibでのビルドのフローを比較したものだ。

Dockerのビルドフロー:

Jibでのビルドフロー:

Jibを使い始めるには、開発者は単に提供されているMavenGradle用のプラグインをビルドファイルに追加しターゲットイメージを設定するだけだ。以下のいくつかの例はコンテナレジストリとDockerデーモンへのビルドを示している。

Maven

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>jib-maven-plugin</artifactId>
  <version>0.9.0</version>
  <configuration>
    <to>
      <image>myimage</image>
    </to>
  </configuration>
</plugin>
# コンテナイメージレジストリへのビルド
$ mvn compile jib:build
# Dockerデーモンへのビルド
$ mvn compile jib:dockerBuild

Gradle

plugins {
  id 'com.google.cloud.tools.jib' version '0.9.8'
}
jib.to.image = 'myimage'
# コンテナイメージレジストリへのビルド
$ gradle jib
# Dockerデーモンへのビルド
$ gradle jibDockerBuild

プライベートリポジトリの認証が必要なユーザ向けに、JibはDocker credential helpersを提供している。ユーザはMaven settingsで認証情報の定義もできる。認証情報ヘルパとしてGoogle Container RegistryAWS Elastic Container RegistryDocker Hub Registryがある。以下は認証情報ヘルパを使う例だ。

<configuration>
  ...
  <from>
    <image>aws_account_id.dkr.ecr.region.amazonaws.com/my-base-image</image>
    <credHelper>ecr-login</credHelper>
  </from>
  <to>
    <image>gcr.io/my-gcp-project/my-app</image>
    <credHelper>gcr</credHelper>
  </to>
  ...
</configuration>

より詳細な情報はGitHubのリポジトリにある。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT