2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Azure] ACR タスクでベースイメージ/ソースコードの更新をトリガーに自動でビルドする

Last updated at Posted at 2020-11-09

Azure Container Registry (ACR) がもつ機能 ACR タスクを使うことで、ベースイメージやソースコードの更新をトリガーに自動でコンテナイメージをビルドすることができます。

ACR タスクの概要 : https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-tasks-overview

1. ACR タスクを作成する

ACR と Dockerfile を含む Git リポジトリをあらかじめ用意しておきます。
azure cloud shell や az login したコンソールで、以下のコマンドを実行します。

ACR_NAME=<作成した ACR 名>
ACR_TASK_NAME=<任意の ACR タスク名>

az acr task create \
  --registry ${ACR_NAME} \
  --name ${ACR_TASK_NAME} \
  --image <任意のコンテナイメージ名>:<タグ> \
  --context <Git リポジトリの clone URL>\
  --file <Dockerfile 名> \
  --git-access-token <Git Access token (PAT)>

公式チュートリアルのコマンド実行例 : https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-tutorial-base-image-update#create-a-task

作成した ACR タスクは ACR の [サービス] - [タスク] から確認できます。
2020-11-07_16h05_30.png

2. ACR タスクを手動で実行する

自動ビルドを有効にするためには、一度、ACR タスクを手動実行する必要があります。
https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-tasks-base-images#additional-considerations

以下のコマンドで実行します。

az acr task run --registry ${ACR_NAME} --name ${ACR_TASK_NAME} 

タスクの [実行] タブから実行が確認できます。
2020-11-07_16h33_16_2.png

また、ACR リポジトリにビルドしたイメージが格納されます。

3. ベースイメージ/ソースコードの更新による自動ビルドを確認する

今回は、Docker Hub 上のベースイメージを更新します。
ベースイメージの場所によって更新からビルドがトリガーされるまでの時間が異なり、Docker Hub の場合は 10 ~ 60 分かかります。
https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-tasks-base-images#base-image-notifications

10 分程度待ってタスク画面を見てみると、トリガーがイメージ更新となっている ACR タスクの実行が確認できました。
2020-11-07_16h49_53.png

また、Git リポジトリ内のソースコードに更新をかけると、こちらも自動ビルドが走りました。
2020-11-07_16h53_07.png

自動ビルドを off にしたい場合は、az acr task update コマンドのオプションでそれぞれ変更できます。
https://docs.microsoft.com/ja-jp/cli/azure/acr/task?view=azure-cli-latest#az_acr_task_update

az acr task update --name ${ACR_TASK_NAME} --registry ${ACR_NAME} --base-image-trigger-enabled false
az acr task update --name ${ACR_TASK_NAME} --registry ${ACR_NAME} --commit-trigger-enabled false

参考資料

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?