Créer une application à plusieurs conteneurs (préversion) à l’aide d’une configuration Docker ComposeCreate a multi-container (preview) app using a Docker Compose configuration

Web App pour conteneurs fournit une solution souple d’utilisation des images Docker.Web App for Containers provides a flexible way to use Docker images. Ce guide de démarrage rapide montre comment déployer une application multiconteneur sur Web App pour conteneurs dans Cloud Shell à l’aide d’une configuration Docker Compose.This quickstart shows how to deploy a multi-container app to Web App for Containers in the Cloud Shell using a Docker Compose configuration.

Vous allez effectuer les étapes de ce guide de démarrage rapide dans Cloud Shell, mais vous pouvez également exécuter ces commandes en local avec Azure CLI (2.0.32 ou ultérieur).You'll complete this quickstart in Cloud Shell, but you can also run these commands locally with Azure CLI (2.0.32 or later).

Exemple d’application à plusieurs conteneurs sur Web App pour conteneurs

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Utiliser Azure Cloud ShellUse Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell vous permet d’utiliser bash ou PowerShell pour travailler avec les services Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Pour lancer Azure Cloud Shell :To launch Azure Cloud Shell:

OptionOption Exemple/LienExample/Link
Sélectionnez Essayer dans le coin supérieur droit d’un bloc de code.Select Try It in the upper-right corner of a code block. La sélection de Essayer ne copie pas automatiquement le code dans Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemple Essayer pour Azure Cloud Shell
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Bouton Cloud Shell du portail Azure

Pour exécuter le code de cet article dans Azure Cloud Shell :To run the code in this article in Azure Cloud Shell:

  1. Ouvrez Cloud Shell.Open Cloud Shell.
  2. Sélectionnez le bouton Copier dans un bloc de code pour copier le code.Select the Copy button on a code block to copy the code.
  3. Collez le code dans la session Cloud Shell avec Ctrl+Maj+V sur Windows et Linux, ou Cmd+ Maj+V sur macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Appuyez sur Entrée pour exécuter le code.Press Enter to run the code.

Téléchargez l’exempleDownload the sample

Pour ce guide de démarrage rapide, vous utilisez le fichier Composer de Docker.For this quickstart, you use the compose file from Docker. Le fichier de configuration se trouve dans les exemples Azure.The configuration file can be found at Azure Samples.

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:

Dans Cloud Shell, créez un répertoire de démarrage rapide, puis utilisez-le.In the Cloud Shell, create a quickstart directory and then change to it.

mkdir quickstart

cd quickstart

Exécutez ensuite la commande suivante pour cloner le référentiel de l’exemple d’application sur votre répertoire de démarrage rapide.Next, run the following command to clone the sample app repository to your quickstart directory. Accédez ensuite au répertoire multicontainerwordpress.Then change to the multicontainerwordpress directory.

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

cd multicontainerwordpress

Créer un groupe de ressourcesCreate a resource group

Un groupe de ressources est un conteneur logique dans lequel les ressources Azure comme les applications web, les bases de données et les comptes de stockage sont déployés et gérés.A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Par exemple, vous pouvez choisir de supprimer le groupe de ressources complet ultérieurement en une seule étape.For example, you can choose to delete the entire resource group in one simple step later.

Dans Cloud Shell, créez un groupe de ressources avec la commande az group create.In the Cloud Shell, create a resource group with the az group create command. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement USA Centre Sud.The following example creates a resource group named myResourceGroup in the South Central US location. Pour afficher tous les emplacements pris en charge pour App Service sous Linux au niveau Standard, exécutez la commande 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"

Vous créez généralement votre groupe de ressources et les ressources dans une région proche de chez vous.You generally create your resource group and the resources in a region near you.

Une fois la commande terminée, une sortie JSON affiche les propriétés du groupe de ressources.When the command finishes, a JSON output shows you the resource group properties.

Créer un plan Azure App ServiceCreate an Azure App Service plan

Dans Cloud Shell, créez un plan App Service dans le groupe de ressources avec la commande az appservice plan create.In the Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

L’exemple suivant crée un plan App Service nommé myAppServicePlan dans le niveau tarifaire Standard (--sku S1) et un conteneur Linux (--is-linux).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

Lorsque le plan App Service est créé, l’interface Azure CLI affiche des informations similaires à l’exemple suivant :When the App Service plan has been created, the Azure CLI 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
}

Création d’une application Docker ComposeCreate a Docker Compose app

Dans Cloud Shell, créez une application web multiconteneur dans le plan App Service myAppServicePlan avec la commande az webapp create.In your Cloud Shell terminal, create a multi-container web app in the myAppServicePlan App Service plan with the az webapp create command. N’oubliez pas de remplacer <app-name> par un nom d’application unique (les caractères valides sont a-z, 0-9 et -).Don't forget to replace <app_name> with a unique app name (valid characters are a-z, 0-9, and -).

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

Une fois l’application web créée, Azure CLI affiche une sortie similaire à l’exemple suivant :When the web app has been created, the Azure CLI 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. >
}

Accéder à l’applicationBrowse to the app

Accédez à l’application déployée dans (http://<app_name>.azurewebsites.net).Browse to the deployed app at (http://<app_name>.azurewebsites.net). Le chargement de l’application peut prendre plusieurs minutes.The app may take a few minutes to load. Si vous recevez une erreur, attendez quelques minutes supplémentaires, puis actualisez le navigateur.If you receive an error, allow a few more minutes then refresh the browser.

Exemple d’application à plusieurs conteneurs sur Web App pour conteneurs

Félicitations, vous avez créé une application à plusieurs conteneurs dans Web App pour conteneurs.Congratulations, you've created a multi-container app in Web App for Containers.

Nettoyer le déploiementClean up deployment

Une fois l’exemple de script exécuté, la commande suivante permet de supprimer le groupe de ressources et toutes les ressources associées.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

Étapes suivantesNext steps