🐙

Azure CLI で App Service へ デプロイしてみる

2022/12/23に公開

はじめに

App Service のカスタムコンテナーに Azure CLI を使用してデプロイしてみます。デプロイ内容は Nginx のデフォルトの内容を表示するところまで行ってみようと思います。
Azure CLIをダウンロードしていない場合はこちらからダウンロードして設定をしてください。
また、サブスクリプションは作成している前提とします。

環境

Docker version 20.10.17
azure-cli 2.39.0

Dockerfile

今回は最小の構成でNginxを構築する内容を作成します。Dockerfile を以下の内容とします。

FROM nginx:latest

EXPOSE 80

RUN service nginx start

Deploy

az login コマンドでログインします。その次に subscription の設定をします。
サブスクリプションの変更が必要な場合は以下のコマンドで変更を行ってください。

# サブスクリプション複数所持している場合にすべて表示します
az account list --output table --all  
# 以下のコマンドでサブスクリプションの変更を行います
az account set --subscription YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY

切り替わったかどうかは最初のコマンドを実行し、 IsDefaultTrue になっていれば切り替わっています。

これから作成するリソースの値を定義します。

LOCATION=japaneast
RESOURCEGROUP_NAME=4kzknt-rg
ACR_NAME=4kzknt-acr
ACR_SKU=Basic
DOCKER_TAG_NAME=4kzknt-tag-name
ASP_NAME=4kzkntaspname
ASP_SKU=B1
APPSERVICE_NAME=4kzkntwebapp

リソースグループ作成

次にリソースグループを作成していきます。コマンドのオプション等については以下の公式ドキュメントを参照してください。
https://learn.microsoft.com/ja-jp/cli/azure/group?view=azure-cli-latest#az-group-create

az group create --location $LOCATION --name $RESOURCEGROUP_NAME

Azure Container Registryにイメージをプッシュ

Azure Container Registory を作成して、 Registory 視覚情報を取得します。

az acr create --resource-group $RESOURCEGROUP_NAME --name $ACR_NAME --sku $ACR_SKU --admin-enabled true --location $LOCATION

az acr credential show --resource-group $RESOURCEGROUP_NAME --name $ACR_NAME

次に、Docker イメージを registory にプッシュします。

docker build -t $DOCKER_TAG_NAME .

docker tag $DOCKER_TAG_NAME:latest $ACR_NAME.azurecr.io/$DOCKER_TAG_NAME:latest

az acr login --name $ACR_NAME

docker push $ACR_NAME.azurecr.io/$DOCKER_TAG_NAME:latest

App Service 作成

App Service Plan(ASP)を作成していきます。コマンドのオプション等については以下の公式ドキュメントを参照してください。
https://learn.microsoft.com/ja-jp/cli/azure/appservice/plan?view=azure-cli-latest#az-appservice-plan-create

az appservice plan create --name $ASP_NAME--resource-group $RESOURCEGROUP_NAME --sku $ASP_SKU --is-linux
    
az webapp create --resource-group $RESOURCEGROUP_NAME --plan $ASP_NAME --name $APPSERVICE_NAME --deployment-container-image-name $ACR_NAME.azurecr.io/$DOCKER_TAG_NAME:latest

az webapp config appsettings set --resource-group $RESOURCEGROUP_NAME --name $APPSERVICE_NAME --settings WEBSITES_PORT=80

skuに関しては今回は適当に入れているのでドキュメントを参照して適切に設定してください。

アクセス

https://4kzkntwebapp.azurewebsites.netでアクセスすると以下のような画像が表示されます。

nginx

Cloean Up

az group delete --name $RESOURCEGROUP_NAME

おわりに

App ServiceにNginxのコンテナーをデプロイするところまでの流れを紹介しました。App Service に構築して検証する際にでも使用していければと思います。

デプロイチュートリアルは以下の公式ドキュメントを参照いただければと思います。

https://learn.microsoft.com/ja-jp/azure/app-service/tutorial-custom-container?pivots=container-linux

Discussion