GitHubにあるBlazor WebAssembly ASP.NET Core HostedなプロジェクトをACRタスクでDockerコンテナイメージビルドする

まず、参考にしたのはここ。

docs.microsoft.com

参考のページとの際はプロジェクトの種類だ。

なので、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を使えるようにする

すでに使えるのであればここは飛ばす。

docs.microsoft.com

ビルドタスクを作成する

まず、環境変数を設定します。

 

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トリガーで成功していたらここでの作業終了です。