先日、Azure PipelinesでAzure Container Appsをデプロイできるタスクがプレビューになったので早速触ってみました。
Container Appsを作成
「アプリ設定」はクイックスタート イメージを使うで大丈夫です(後からサンプルアプリケーションをデプロイします)
※今回のサンプルを動かす場合、イングレスのターゲットポートは3500に設定する必要があります(Dockerfileに指定あり)
ACRを作成
ビルドしたコンテナを管理するためにACRを作成します。
Azure DevOpsにサンプルリポジトリをインポート
今回は公式のサンプルアプリケーションを利用させてもらいます。
Azure DevOpsプロジェクトにAzure Container Apps タスクをインストールする
Azure Container Apps の Azure Pipelines タスクは、現在プレビュー段階です。 タスクを使用する前に、それを Azure DevOps Marketplace からインストールする必要があります。
「Get it free」からインストールするプロジェクトを選択してすぐにインストールできます。
使い方も上記のマーケットプレイスから確認できます。
Pipelineを作成
azure-pipelines.ymlをプロジェクトルートに作成し、コミットすればデプロイが実行されます。
trigger:
branches:
include:
- main
pool:
vmImage: ubuntu-latest
steps:
- task: AzureContainerAppsRC@0
inputs:
appSourcePath: '$(Build.SourcesDirectory)/src'
azureSubscription: '<サブスクリプションのサービスコネクション名>'
acrName: '<ACR名>'
containerAppName: 'container-app-demo'
resourceGroup: '<リソースグループ名>'
Pipelinesが成功して、ブラウザでアクセスできたらOK
ここがすごいよAzure Container Apps タスク
- 今までのApp Serviceなどにコンテナアプリケーションをデプロイする際は、①Dockerビルド、②ACRにpush、③App Serviceにデプロイといった工程をPipelinesに記載しなければならなかったが、タスク一つで完結している
- 今回はDockerfileありのサンプルだったが、なくてもいけるみたい(すごい)
-
タスクでは、appSourcePath 内の Dockerfile を使用してコンテナー イメージがビルドされます。 Dockerfile が見つからない場合、タスクは、appSourcePath 内のソース コードからコンテナー イメージをビルドすることを試みます。
-
- 特にACRのリポジトリなどを指定しなくても良しなにしてくれる
- もちろんタグなどは自分でも指定できる(imageToDeployオプション)
参考