jib-maven-pluginでAzure Container RegistryにSpring Bootアプリのイメージを登録する


以下のクイックスタートを参考にSpring BootアプリのイメージをAzure Container Registryに登録してみました。

クイックスタートと以下の点で異なる手順を試しました。
- Azure Container RegistryはAzure CLIではなくダッシュボードで作成
- Spring Initializrで作成したプロジェクトを利用
- Azure Container Registryでアクセスキーを発行

以下まとめます。

Azure Container Registryの作成

コンテナーレジストリを選びます。

SKUはBasicにしました。

作成後「アクセスキー」の管理者ユーザを「有効」にしました。クイックスタートの中ではAzure Container Registryの認証について特に書かれていないのですが、何もしないままだと認証エラーになってしまったので今回はこの手順を踏みました。

Azure Container Registryの準備は以上です。

Spring BootアプリとJibの準備

クイックスタートではSpring Boot on Docker Getting StartedのコードをCloneしていますが、私はSpring Initializrで作成したプロジェクトを使いました。依存性に加えたのはSpring Webのみです。

pom.xmlにjib-maven-pluginの定義を追加して、さきほどAzureで作成したAzure Container Registryのサーバを指定します。(ここでは作成するリポジトリ名をdemoにしました)

認証情報も設定します。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <to>
                    <image>xxxxxxxxxxx.azurecr.io/demo</image>
                    <auth>
                        <username>xxxxxxxxxx</username>
                        <password>xxxxxxxxxxxxxxx</password>
                    </auth>
                </to>
            </configuration>
        </plugin>
    </plugins>
</build>

あとは以下でビルドするだけです。これでSpring BootアプリのイメージをAzure Container Registryに登録してくれます。

mvn compile jib:build

リポジトリを確認すると無事作成されています。

認証周りはもう少し理解を深めたいです。