1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Rails アプリを Azure App Service に Docker を使い、デプロイ & 継続的デプロイ

この記事は、求ム!Cloud Nativeアプリケーション開発のTips!【PR】日本マイクロソフト Advent Calendar 2020 の 20 日目です(後から追っかけで書いています)。


本記事では Rails アプリを Azure App Service に Docker を使い、デプロイ & 継続的デプロイする方法について、ご紹介したいと思います。

手順

手順は以下の通りです。

  1. Azure CLI or Portal でログインする
  2. Azure CLI or Portal でリソースグループを作成する
  3. Azure CLI or Portal で Azure Container Registry(以下ACR) に使用するイメージを登録する
  4. Rails アプリの Docker Image を作成する
  5. Azure CLI で作成した Rails アプリの Docker Image を ACR に push する
  6. Azure CLI or Portal で App Service Plan を作成する
  7. Azure CLI or Portal で App Service Plan と ACR の Docker Image をパラメーターに指定して App Service を作成する
  8. Azure CLI or Portal で App Service と ACR を関連づける
  9. Azure CLI or Portal で App Service に CD を設定する
  10. Azure CLI or Portal で ACR に Webhook を設定する
  11. Azure CLI or Portal で環境変数の設定

以下に Azure CLI での実行コマンド例を記載します。

1. Azure CLI でログインする

$ az login

2. Azure CLI でリソースグループを作成する

$ az group create --name [リソースグループ名] --location [リソースグループの場所]

3. Azure CLI で Azure Container Registry(以下ACR) に使用するイメージを登録する

$ az acr create --resource-group [リソースグループ名] --name [ACR 名] --sku [好きなの選択] --admin-enabled true --location [リソースグループと同じ場所]

4. Rails アプリの Docker Image を作成する

(Azure CLI ではないので、スキップ)

5. Azure CLI で作成した Rails アプリの Docker Image を ACR に push する

$ az acr login --name [ACR 名]
$ docker push [ACR の名とタグ]

6. Azure CLI で App Service Plan を作成する

$ az appservice plan create --resource-group [リソースグループ名] --name [App Service Plan 名] --sku [B1とかS1とか指定] --location [リソースグループと同じ場所] --is-linux

7. Azure CLI で App Service Plan と ACR の Docker Image をパラメーターに指定して App Service を作成する

$ az webapp create --resource-group [リソースグループ名] --plan [App Service Plan名] --name [App Service 名] --deployment-container-image-name [ACR の名とタグ]

8. Azure CLI で App Service と ACR を関連づける

$ az webapp config container set --name [App Service 名] --resource-group [リソースグループ名] --docker-custom-image-name [ACR の名とタグ] --docker-registry-server-url [ACR の場所] --docker-registry-server-user [ACR 名] --docker-registry-server-password [ACR の Password]

9. Azure CLI or Portal で App Service に CD を設定する

$ az webapp deployment container config --resource-group [リソースグループ名] --name [App Service 名] --enable-cd true

10. Azure CLI or Portal で ACR に Webhook を設定する

$ az acr webhook create --name [App Service 名] --resource-group [リソースグループ名] --scope [ACR の名とタグから場所を引いたもの] --location [リソースグループと同じ場所] --uri [URI] --actions push delete

11. Azure CLI or Portal で環境変数の設定

$ az webapp config appsettings set --settings RAILS_ENV=[環境名] --name [App Service 名] --resource-group [リソースグループ名]
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?