チュートリアル:Web App for Containers でマルチコンテナー (プレビュー) アプリを作成するTutorial: Create a multi-container (preview) app in Web App for Containers

Web App for Containers には、Docker イメージを柔軟に使用できる機能があります。Web App for Containers provides a flexible way to use Docker images. このチュートリアルでは、WordPress と MySQL を使用してマルチコンテナー アプリを作成する方法について説明します。In this tutorial, you'll learn how to create a multi-container app using WordPress and MySQL. このチュートリアルは Cloud Shell で行いますが、Azure CLI コマンド ライン ツール (2.0.32 以降) を使用して、これらのコマンドをローカルで実行することもできます。You'll complete this tutorial in Cloud Shell, but you can also run these commands locally with the Azure CLI command-line tool (2.0.32 or later).

このチュートリアルでは、以下の内容を学習します。In this tutorial, you learn how to:

  • Web App for Containers で使用できるように Docker Compose の構成を変換するConvert a Docker Compose configuration to work with Web App for Containers
  • Azure にマルチコンテナー アプリを展開するDeploy a multi-container app to Azure
  • アプリケーションの設定を追加するAdd application settings
  • コンテナーに永続的ストレージを使用するUse persistent storage for your containers
  • Azure Database for MySQL に接続するConnect to Azure Database for MySQL
  • エラーをトラブルシューティングするTroubleshoot errors

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

前提条件Prerequisites

このチュートリアルを完了するには、Docker Compose の使用経験が必要となります。To complete this tutorial, you need experience with Docker Compose.

サンプルのダウンロードDownload the sample

このチュートリアルでは、Docker の作成ファイルを使用しますが、Azure Database for MySQL、永続的なストレージ、Redis を含むように変更します。For this tutorial, you use the compose file from Docker, but you'll modify it include Azure Database for MySQL, persistent storage, and Redis. 構成ファイルは Azure サンプルにあります。The configuration file can be found at Azure Samples. サポートされる構成オプションについては、「Docker Compose options」(Docker Compose オプション) を参照してください。For supported configuration options, see Docker Compose options.

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

Cloud Shell で、チュートリアルのディレクトリを作成し、そのディレクトリに移動します。In Cloud Shell, create a tutorial directory and then change to it.

mkdir tutorial

cd tutorial

次に、次のコマンドを実行して、サンプル アプリのリポジトリをチュートリアルのディレクトリに複製します。Next, run the following command to clone the sample app repository to your tutorial directory. その後、multicontainerwordpress ディレクトリに移動します。Then change to the multicontainerwordpress directory.

git clone https://github.com/Azure-Samples/multicontainerwordpress

cd multicontainerwordpress

リソース グループの作成Create a resource group

リソース グループとは、Web アプリ、データベース、ストレージ アカウントなどの Azure リソースのデプロイと管理に使用する論理コンテナーです。A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. たとえば、後から簡単な手順で一度にリソース グループ全体を削除することもできます。For example, you can choose to delete the entire resource group in one simple step later.

Cloud Shell で az group create コマンドを使用して、リソース グループを作成します。In Cloud Shell, create a resource group with the az group create command. 次の例では、myResourceGroup という名前のリソース グループを場所米国中南部に作成します。The following example creates a resource group named myResourceGroup in the South Central US location. Standard レベルの Linux 上の App Service がサポートされているすべての場所を表示するには、az appservice list-locations --sku S1 --linux-workers-enabled コマンドを実行します。To see all supported locations for App Service on Linux in Standard tier, run the az appservice list-locations --sku S1 --linux-workers-enabled command.

az group create --name myResourceGroup --location "South Central US"

通常は、現在地付近の地域にリソース グループおよびリソースを作成します。You generally create your resource group and the resources in a region near you.

コマンドが完了すると、リソース グループのプロパティが JSON 出力に表示されます。When the command finishes, a JSON output shows you the resource group properties.

Azure App Service プランの作成Create an Azure App Service plan

Cloud Shell で az appservice plan create コマンドを使用して、リソース グループに App Service プランを作成します。In Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

次の例では、Standard 価格レベル (--sku S1) を使用して、Linux コンテナー (--is-linux) に myAppServicePlan という名前の App Service プランを作成します。The following example creates an App Service plan named myAppServicePlan in the Standard pricing tier (--sku S1) and in a Linux container (--is-linux).

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku S1 --is-linux

App Service プランが作成されると、Cloud Shell に、次の例のような情報が表示されます。When the App Service plan has been created, Cloud Shell shows information similar to the following example:

{
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "South Central US",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "South Central US",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
}

WordPress および MySQL コンテナーを使用した Docker ComposeDocker Compose with WordPress and MySQL containers

Docker Compose アプリを作成するCreate a Docker Compose app

Cloud Shell で az webapp create コマンドを使って、myAppServicePlan App Service プランにマルチコンテナーの Web アプリを作成します。In your Cloud Shell, create a multi-container web app in the myAppServicePlan App Service plan with the az webapp create command. <app-name> は忘れずに固有のアプリ名に置き換えてください。Don't forget to replace <app-name> with a unique app name.

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml

Web アプリが作成されると、Cloud Shell に、次の例のような出力が表示されます。When the web app has been created, Cloud Shell shows output similar to the following example:

{
  "additionalProperties": {},
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app-name>.azurewebsites.net",
  "enabled": true,
  < JSON data removed for brevity. >
}

アプリの参照Browse to the app

展開されたアプリ (http://<app-name>.azurewebsites.net) を参照します。Browse to the deployed app at (http://<app-name>.azurewebsites.net). アプリの読み込みには数分かかることがあります。The app may take a few minutes to load. エラーが発生した場合は、数分待ってからブラウザーを更新してください。If you receive an error, allow a few more minutes then refresh the browser. 問題が発生して解決したい場合は、コンテナーのログを確認してください。If you're having trouble and would like to troubleshoot, review container logs.

Web App for Containers のサンプル マルチコンテナー アプリ

おめでとうございます。Web App for Containers にマルチコンテナー アプリを作成しました。Congratulations, you've created a multi-container app in Web App for Containers. 次に、Azure Database for MySQL を使用するようにアプリを構成します。Next you'll configure your app to use Azure Database for MySQL. この時点で WordPress をインストールしないでください。Don't install WordPress at this time.

運用データベースに接続するConnect to production database

運用環境でデータベース コンテナーを使用することはお勧めしません。It's not recommended to use database containers in a production environment. ローカル コンテナーはスケーラブルではありません。The local containers aren't scalable. 代わりに、スケーラブルな Azure Database for MySQL を使用します。Instead, you'll use Azure Database for MySQL which can be scaled.

Azure Database for MySQL サーバーの作成Create an Azure Database for MySQL server

az mysql server create コマンドを使用して Azure Database for MySQL サーバーを作成します。Create an Azure Database for MySQL server with the az mysql server create command.

次のコマンドで、 <mysql-server-name> プレースホルダーを MySQL サーバー名に置き換えます (有効な文字は a-z0-9、および - です)。In the following command, substitute your MySQL server name where you see the <mysql-server-name> placeholder (valid characters are a-z, 0-9, and -). この名前は、MySQL サーバーのホスト名 (<mysql-server-name>.database.windows.net) の一部であるため、グローバルに一意である必要があります。This name is part of the MySQL server's hostname (<mysql-server-name>.database.windows.net), it needs to be globally unique.

az mysql server create --resource-group myResourceGroup --name <mysql-server-name>  --location "South Central US" --admin-user adminuser --admin-password My5up3rStr0ngPaSw0rd! --sku-name B_Gen4_1 --version 5.7

サーバーの作成が完了するまでに数分かかる場合があります。Creating the server may take a few minutes to complete. MySQL サーバーが作成されると、Cloud Shell に、次の例のような情報が表示されます。When the MySQL server is created, Cloud Shell shows information similar to the following example:

{
  "administratorLogin": "adminuser",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "<mysql-server-name>.database.windows.net",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DBforMySQL/servers/<mysql-server-name>",
  "location": "southcentralus",
  "name": "<mysql-server-name>",
  "resourceGroup": "myResourceGroup",
  ...
}

サーバーのファイアウォールを構成するConfigure server firewall

az mysql server firewall-rule create コマンドを使用して、MySQL サーバーでクライアント接続を許可するためのファイアウォール規則を作成します。Create a firewall rule for your MySQL server to allow client connections by using the az mysql server firewall-rule create command. 開始 IP と終了 IP の両方が 0.0.0.0 に設定されている場合、ファイアウォールは他の Azure リソースに対してのみ開かれます。When both starting IP and end IP are set to 0.0.0.0, the firewall is only opened for other Azure resources.

az mysql server firewall-rule create --name allAzureIPs --server <mysql-server-name> --resource-group myResourceGroup --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

ヒント

アプリで使用する送信 IP アドレスのみを使用することで、ファイアウォール規則による制限をさらに厳しくすることができます。You can be even more restrictive in your firewall rule by using only the outbound IP addresses your app uses.

WordPress データベースを作成するCreate the WordPress database

az mysql db create --resource-group myResourceGroup --server-name <mysql-server-name> --name wordpress

データベースが作成されると、Cloud Shell に、次の例のような情報が表示されます。When the database has been created, Cloud Shell shows information similar to the following example:

{
  "additionalProperties": {},
  "charset": "latin1",
  "collation": "latin1_swedish_ci",
  "id": "/subscriptions/12db1644-4b12-4cab-ba54-8ba2f2822c1f/resourceGroups/myResourceGroup/providers/Microsoft.DBforMySQL/servers/<mysql-server-name>/databases/wordpress",
  "name": "wordpress",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.DBforMySQL/servers/databases"
}

WordPress でデータベース変数を構成するConfigure database variables in WordPress

WordPress アプリをこの新しい MySQL サーバーに接続するには、MYSQL_SSL_CA によって定義された SSL CA パスなど、いくつかの WordPress 固有の環境変数を構成します。To connect the WordPress app to this new MySQL server, you'll configure a few WordPress-specific environment variables, including the SSL CA path defined by MYSQL_SSL_CA. DigiCertBaltimore CyberTrust Root は、以下のカスタム イメージにあります。The Baltimore CyberTrust Root from DigiCert is provided in the custom image below.

これらの変更を行うには、Cloud Shell で az webapp config appsettings set コマンドを使用します。To make these changes, use the az webapp config appsettings set command in Cloud Shell. アプリケーション設定は、大文字と小文字を区別し、スペースで区切られます。App settings are case-sensitive and space-separated.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WORDPRESS_DB_HOST="<mysql-server-name>.mysql.database.azure.com" WORDPRESS_DB_USER="adminuser@<mysql-server-name>" WORDPRESS_DB_PASSWORD="My5up3rStr0ngPaSw0rd!" WORDPRESS_DB_NAME="wordpress" MYSQL_SSL_CA="BaltimoreCyberTrustroot.crt.pem"

アプリ設定が作成されると、Cloud Shell に、次の例のような情報が表示されます。When the app setting has been created, Cloud Shell shows information similar to the following example:

[
  {
    "name": "WORDPRESS_DB_HOST",
    "slotSetting": false,
    "value": "<mysql-server-name>.mysql.database.azure.com"
  },
  {
    "name": "WORDPRESS_DB_USER",
    "slotSetting": false,
    "value": "adminuser@<mysql-server-name>"
  },
  {
    "name": "WORDPRESS_DB_NAME",
    "slotSetting": false,
    "value": "wordpress"
  },
  {
    "name": "WORDPRESS_DB_PASSWORD",
    "slotSetting": false,
    "value": "My5up3rStr0ngPaSw0rd!"
  },
  {
    "name": "MYSQL_SSL_CA",
    "slotSetting": false,
    "value": "BaltimoreCyberTrustroot.crt.pem"
  }
]

環境変数の詳細については、「Configure environment variables」(環境変数を構成する) を参照してください。For more information on environment variables, see Configure environment variables.

MySQL SSL およびその他の構成にカスタム イメージを使用するUse a custom image for MySQL SSL and other configurations

既定では、SSL は Azure Database for MySQL に使用されます。By default, SSL is used by Azure Database for MySQL. SSL と MySQL を使用するには、WordPress に追加の構成が必要です。WordPress requires additional configuration to use SSL with MySQL. WordPress の "公式イメージ" に追加の構成は用意されていませんが、便宜的にカスタム イメージが用意されています。The WordPress 'official image' doesn't provide the additional configuration, but a custom image has been prepared for your convenience. 実際には、イメージに必要な変更を加えます。In practice, you would add desired changes to your own image.

カスタム イメージは、Docker Hub の WordPress の "公式イメージ" に基づいています。The custom image is based on the 'official image' of WordPress from Docker Hub. Azure Database for MySQL のこのカスタム イメージでは、以下の変更が行われました。The following changes have been made in this custom image for Azure Database for MySQL:

Redis では、以下の変更が行われました (後のセクションで使用されます)。The following changes have been made for Redis (to be used in a later section):

カスタム イメージを使用するには、docker-compose-wordpress.yml ファイルを更新します。To use the custom image, you'll update your docker-compose-wordpress.yml file. Cloud Shell で、「nano docker-compose-wordpress.yml」と入力して nano テキスト エディターを開きます。In Cloud Shell, type nano docker-compose-wordpress.yml to open the nano text editor. image: microsoft/multicontainerwordpress を使用するように image: wordpress を変更します。Change the image: wordpress to use image: microsoft/multicontainerwordpress. データベース コンテナーは不要になります。You no longer need the database container. 構成ファイルから dbenvironmentdepends_on、および volumes セクションを削除します。Remove the db, environment, depends_on, and volumes section from the configuration file. ファイルは次のコードのようになります。Your file should look like the following code:

version: '3.3'

services:
   wordpress:
     image: microsoft/multicontainerwordpress
     ports:
       - "8000:80"
     restart: always

変更内容を保存し、nano を終了します。Save your changes and exit nano. コマンド ^O を使用して保存し、^X を使用して終了します。Use the command ^O to save and ^X to exit.

新しい構成でアプリを更新するUpdate app with new configuration

Cloud Shell で、az webapp config container set コマンドを使用して、マルチコンテナー Web アプリを再構成します。In Cloud Shell, reconfigure your multi-container web app with the az webapp config container set command. <app-name> は忘れずに前に作成した Web アプリの名前に置き換えてください。Don't forget to replace <app-name> with the name of the web app you created earlier.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml

アプリが再構成されると、Cloud Shell に、次の例のような情報が表示されます。When the app has been reconfigured, Cloud Shell shows information similar to the following example:

[
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICB3b3JkcHJlc3M6CiAgICAgaW1hZ2U6IG1zYW5nYXB1L3dvcmRwcmVzcwogICAgIHBvcnRzOgogICAgICAgLSAiODAwMDo4MCIKICAgICByZXN0YXJ0OiBhbHdheXM="
  }
]

アプリの参照Browse to the app

展開されたアプリ (http://<app-name>.azurewebsites.net) を参照します。Browse to the deployed app at (http://<app-name>.azurewebsites.net). アプリには Azure Database for MySQL が使用されるようになります。The app is now using Azure Database for MySQL.

Web App for Containers のサンプル マルチコンテナー アプリ

永続的ストレージを追加するAdd persistent storage

マルチコンテナーは Web App for Containers で実行されています。Your multi-container is now running in Web App for Containers. ただし、すぐに WordPress をインストールして後でアプリを再起動すると、WordPress のインストールがなくなっていることがわかります。However, if you install WordPress now and restart your app later, you'll find that your WordPress installation is gone. これは、現在、Docker Compose の構成がコンテナー内のストレージの場所を指しているために発生します。This happens because your Docker Compose configuration currently points to a storage location inside your container. コンテナーにインストールされたファイルは、アプリの再起動後に残りません。The files installed into your container don't persist beyond app restart. このセクションでは、WordPress コンテナーに永続的なストレージを追加します。In this section, you'll add persistent storage to your WordPress container.

環境変数を構成するConfigure environment variables

永続的なストレージを使用するには、App Service 内でこの設定を有効にします。To use persistent storage, you'll enable this setting within App Service. この変更を行うには、Cloud Shell で az webapp config appsettings set コマンドを使用します。To make this change, use the az webapp config appsettings set command in Cloud Shell. アプリケーション設定は、大文字と小文字を区別し、スペースで区切られます。App settings are case-sensitive and space-separated.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE

アプリ設定が作成されると、Cloud Shell に、次の例のような情報が表示されます。When the app setting has been created, Cloud Shell shows information similar to the following example:

[
  < JSON data removed for brevity. >
  {
    "name": "WORDPRESS_DB_NAME",
    "slotSetting": false,
    "value": "wordpress"
  },
  {
    "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE",
    "slotSetting": false,
    "value": "TRUE"
  }
]

構成ファイルを変更するModify configuration file

Cloud Shell で、「nano docker-compose-wordpress.yml」と入力して nano テキスト エディターを開きます。In the Cloud Shell, type nano docker-compose-wordpress.yml to open the nano text editor.

volumes オプションは、ファイル システムをコンテナー内のディレクトリにマップします。The volumes option maps the file system to a directory within the container. ${WEBAPP_STORAGE_HOME} は、アプリの永続的なストレージにマップされる App Service の環境変数です。${WEBAPP_STORAGE_HOME} is an environment variable in App Service that is mapped to persistent storage for your app. ボリューム オプションでこの環境変数を使用すると、WordPress ファイルはコンテナーではなく永続的なストレージにインストールされます。You'll use this environment variable in the volumes option so that the WordPress files are installed into persistent storage instead of the container. ファイルを次のように変更します。Make the following modifications to the file:

wordpress セクションで volumes オプションを追加すると、次のコードのようになります。In the wordpress section, add a volumes option so it looks like the following code:

version: '3.3'

services:
   wordpress:
     image: microsoft/multicontainerwordpress
     volumes:
      - ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html
     ports:
       - "8000:80"
     restart: always

新しい構成でアプリを更新するUpdate app with new configuration

Cloud Shell で、az webapp config container set コマンドを使用して、マルチコンテナー Web アプリを再構成します。In Cloud Shell, reconfigure your multi-container web app with the az webapp config container set command. <app-name> は忘れずに固有のアプリ名に置き換えてください。Don't forget to replace <app-name> with a unique app name.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml

コマンドを実行すると、次のような出力が表示されます。After your command runs, it shows output similar to the following example:

[
  {
    "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE",
    "slotSetting": false,
    "value": "TRUE"
  },
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICBteXNxbDoKICAgICBpbWFnZTogbXlzcWw6NS43CiAgICAgdm9sdW1lczoKICAgICAgIC0gZGJfZGF0YTovdmFyL2xpYi9teXNxbAogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgTVlTUUxfUk9PVF9QQVNTV09SRDogZXhhbXBsZXBhc3MKCiAgIHdvcmRwcmVzczoKICAgICBkZXBlbmRzX29uOgogICAgICAgLSBteXNxbAogICAgIGltYWdlOiB3b3JkcHJlc3M6bGF0ZXN0CiAgICAgcG9ydHM6CiAgICAgICAtICI4MDAwOjgwIgogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiBleGFtcGxlcGFzcwp2b2x1bWVzOgogICAgZGJfZGF0YTo="
  }
]

アプリの参照Browse to the app

展開されたアプリ (http://<app-name>.azurewebsites.net) を参照します。Browse to the deployed app at (http://<app-name>.azurewebsites.net).

WordPress コンテナーは、Azure Database for MySQL と永続的なストレージを使用しています。The WordPress container is now using Azure Database for MySQL and persistent storage.

Redis コンテナーを追加するAdd Redis container

WordPress の "公式イメージ" には Redis の依存関係は含まれていません。The WordPress 'official image' does not include the dependencies for Redis. Redis を WordPress と共に使用するために必要なこれらの依存関係と追加の構成が、このカスタム イメージに用意されています。These dependencies and additional configuration needed to use Redis with WordPress have been prepared for you in this custom image. 実際には、イメージに必要な変更を加えます。In practice, you would add desired changes to your own image.

カスタム イメージは、Docker Hub の WordPress の "公式イメージ" に基づいています。The custom image is based on the 'official image' of WordPress from Docker Hub. Redis のこのカスタム イメージでは、以下の変更が行われました。The following changes have been made in this custom image for Redis:

構成ファイルの一番下に redis コンテナーを追加すると、次の例のようになります。Add the redis container to the bottom of the configuration file so it looks like the following example:

version: '3.3'

services:
   wordpress:
     image: microsoft/multicontainerwordpress
     ports:
       - "8000:80"
     restart: always

   redis:
     image: redis:3-alpine
     restart: always

環境変数を構成するConfigure environment variables

Redis を使用するには、App Service 内でこの設定 WP_REDIS_HOST を有効にします。To use Redis, you'll enable this setting, WP_REDIS_HOST, within App Service. これは、WordPress が Redis ホストと通信するために必要な設定です。This is a required setting for WordPress to communicate with the Redis host. この変更を行うには、Cloud Shell で az webapp config appsettings set コマンドを使用します。To make this change, use the az webapp config appsettings set command in Cloud Shell. アプリケーション設定は、大文字と小文字を区別し、スペースで区切られます。App settings are case-sensitive and space-separated.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WP_REDIS_HOST="redis"

アプリ設定が作成されると、Cloud Shell に、次の例のような情報が表示されます。When the app setting has been created, Cloud Shell shows information similar to the following example:

[
  < JSON data removed for brevity. >
  {
    "name": "WORDPRESS_DB_USER",
    "slotSetting": false,
    "value": "adminuser@<mysql-server-name>"
  },
  {
    "name": "WP_REDIS_HOST",
    "slotSetting": false,
    "value": "redis"
  }
]

新しい構成でアプリを更新するUpdate app with new configuration

Cloud Shell で、az webapp config container set コマンドを使用して、マルチコンテナー Web アプリを再構成します。In Cloud Shell, reconfigure your multi-container web app with the az webapp config container set command. <app-name> は忘れずに固有のアプリ名に置き換えてください。Don't forget to replace <app-name> with a unique app name.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml

コマンドを実行すると、次のような出力が表示されます。After your command runs, it shows output similar to the following example:

[
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICBteXNxbDoKICAgICBpbWFnZTogbXlzcWw6NS43CiAgICAgdm9sdW1lczoKICAgICAgIC0gZGJfZGF0YTovdmFyL2xpYi9teXNxbAogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgTVlTUUxfUk9PVF9QQVNTV09SRDogZXhhbXBsZXBhc3MKCiAgIHdvcmRwcmVzczoKICAgICBkZXBlbmRzX29uOgogICAgICAgLSBteXNxbAogICAgIGltYWdlOiB3b3JkcHJlc3M6bGF0ZXN0CiAgICAgcG9ydHM6CiAgICAgICAtICI4MDAwOjgwIgogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiBleGFtcGxlcGFzcwp2b2x1bWVzOgogICAgZGJfZGF0YTo="
  }
]

アプリの参照Browse to the app

展開されたアプリ (http://<app-name>.azurewebsites.net) を参照します。Browse to the deployed app at (http://<app-name>.azurewebsites.net).

手順を完了し、WordPress をインストールします。Complete the steps and install WordPress.

WordPress を Redis に接続するConnect WordPress to Redis

WordPress 管理にサインインします。左側のナビゲーションで [プラグイン] を選択し、 [Installed Plugins](インストールされているプラグイン) を選択します。Sign in to WordPress admin. In the left navigation, select Plugins, and then select Installed Plugins.

WordPress プラグインを選択する

すべてのプラグインがここに表示されますShow all plugins here

プラグイン ページで [Redis Object Cache](Redis オブジェクト キャッシュ) を見つけて [アクティブ化] をクリックします。In the plugins page, find Redis Object Cache and click Activate.

Redis をアクティブ化する

[設定] をクリックします。Click on Settings.

[設定] をクリックする

[Enable Object Cache](オブジェクト キャッシュを有効にする) ボタンをクリックします。Click the Enable Object Cache button.

[Enable Object Cache](オブジェクト キャッシュを有効にする) ボタンをクリックする

WordPress が Redis サーバーに接続されます。WordPress connects to the Redis server. 同じページに接続の状態が表示されます。The connection status appears on the same page.

WordPress が Redis サーバーに接続されます。

おめでとうございます。WordPress を Redis に接続しました。Congratulations, you've connected WordPress to Redis. 運用環境対応のアプリが、Azure Database for MySQL、永続的なストレージ、Redis を使用するようになりました。The production-ready app is now using Azure Database for MySQL, persistent storage, and Redis. App Service プランを複数のインスタンスにスケールアウトできるようになりました。You can now scale out your App Service Plan to multiple instances.

Docker コンテナー ログを検索するFind Docker Container logs

複数のコンテナーを使用して問題が発生した場合は、https://<app-name>.scm.azurewebsites.net/api/logs/docker を参照してコンテナー ログにアクセスできます。If you run into issues using multiple containers, you can access the container logs by browsing to: https://<app-name>.scm.azurewebsites.net/api/logs/docker.

次の例のような出力が表示されます。You'll see output similar to the following example:

[
   {
      "machineName":"RD00XYZYZE567A",
      "lastUpdated":"2018-05-10T04:11:45Z",
      "size":25125,
      "href":"https://<app-name>.scm.azurewebsites.net/api/vfs/LogFiles/2018_05_10_RD00XYZYZE567A_docker.log",
      "path":"/home/LogFiles/2018_05_10_RD00XYZYZE567A_docker.log"
   }
]

各コンテナーのログと親プロセスの追加ログが表示されます。You see a log for each container and an additional log for the parent process. ログを表示するには、それぞれの href 値をブラウザーにコピーします。Copy the respective href value into the browser to view the log.

デプロイのクリーンアップClean up deployment

サンプル スクリプトの実行後は、次のコマンドを使用してリソース グループとすべての関連リソースを削除することができます。After the sample script has been run, the following command can be used to remove the resource group and all resources associated with it.

az group delete --name myResourceGroup

次の手順Next steps

このチュートリアルでは、以下の内容を学習しました。In this tutorial, you learned how to:

  • Web App for Containers で使用できるように Docker Compose の構成を変換するConvert a Docker Compose configuration to work with Web App for Containers
  • Azure にマルチコンテナー アプリを展開するDeploy a multi-container app to Azure
  • アプリケーションの設定を追加するAdd application settings
  • コンテナーに永続的ストレージを使用するUse persistent storage for your containers
  • Azure Database for MySQL に接続するConnect to Azure Database for MySQL
  • エラーをトラブルシューティングするTroubleshoot errors

次のチュートリアルに進んで、カスタム DNS 名をアプリにマップする方法を確認してください。Advance to the next tutorial to learn how to map a custom DNS name to your app.

または、他のリソースを参照してください。Or, check out other resources: