GitHubにあるBlazor WebAssembly ASP.NET Core HostedなプロジェクトをACRタスクでDockerコンテナイメージビルドする
まず、参考にしたのはここ。
参考のページとの際はプロジェクトの種類だ。
なので、ASP.NET Coreのビルドができれば基本的にはうまくいくはず。
前提条件
Blazor WebAssemblyのテンプレートにASP.NET Core Hostedのオプションをつけたプロジェクトがあり、Serverプロジェクトにコンテナサポートが入っていること。
(プロジェクト名/Server/Dockerfileがあること。)
GitHub個人用アクセストークンを作成する
上に示した参考ページの通りに個人用アクセストークンを作成する。
https://github.com/settings/tokens/new
上記より、[repo:status]と[public_repo]を有効にする。
Azure CLIを使えるようにする
すでに使えるのであればここは飛ばす。
ビルドタスクを作成する
まず、環境変数を設定します。
ACR_NAME=# Azure container registryの名前 GIT_USER= # GitHubのアカウント名 GIT_PAT= # 先ほど生成したトークン
次に、az acr task createコマンドを実行してタスクを生成します。
このときのポイントはDockerファイルはServerプロジェクト内にできているので参考ページとはDockerファイルのパスがずれているというところです。
また、--nameや--imageの名前は適宜変更してください。
az acr task create \ --registry $ACR_NAME \ --name taskhelloworld \ --image helloworld:{{.Run.ID}} \ --context https://github.com/$GIT_USER/<リポジトリ名> \ --file <プロジェクト名>/Server/Dockerfile \ --git-access-token $GIT_PAT
ビルドタスクをテストする
ここまででうまくいくとコンテナビルドができるはずです。
az acr task run --registry $ACR_NAME --name taskhelloworld
ここまでで成功したら、ソースコードを変更して自動的にトリガーするか試してみましょう。
このように、Azure portalのACRリソースのタスクタブにCommitトリガーで成功していたらここでの作業終了です。