Créer une application à plusieurs conteneurs (préversion) à l’aide d’une configuration Docker Compose

Remarque

Les conteneurs sidecar (préversion) remplaceront les applications multiconteneur dans App Service. Pour commencer, consultez Didacticiel : Configurer un conteneur sidecar pour un conteneur personnalisé dans Azure App Service (préversion).

Web App pour conteneurs fournit une solution souple d’utilisation des images Docker. Ce guide de démarrage rapide montre comment déployer une application multiconteneur (préversion) sur Web App pour conteneurs dans Cloud Shell à l’aide d’une configuration Docker Compose.

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

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

Cet article nécessite la version 2.0.32 ou ultérieure de l’interface Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.

Télécharger l’exemple

Pour ce guide de démarrage rapide, vous utilisez le fichier Composer de Docker. Le fichier de configuration se trouve dans les exemples Azure.

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.

mkdir quickstart

cd $HOME/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. Accédez ensuite au répertoire multicontainerwordpress.

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

cd multicontainerwordpress

Créer un groupe de ressources

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ées et managées. Par exemple, vous pouvez choisir de supprimer le groupe de ressources complet ultérieurement en une seule étape.

Dans Cloud Shell, créez un groupe de ressources avec la commande az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement USA Centre Sud. 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.

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.

Une fois la commande terminée, une sortie JSON affiche les propriétés du groupe de ressources.

Créer un plan Azure App Service

Dans Cloud Shell, créez un plan App Service dans le groupe de ressources avec la commande az appservice plan create.

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

{
  "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 Compose

Notes

Docker Compose sur Azure App Services a actuellement une limite de 4000 caractères lorsqu’il est converti vers Base64.

Dans Cloud Shell, créez une application web multiconteneur dans le plan App Service myAppServicePlan avec la commande az webapp create. N’oubliez pas de remplacer <app_name> par un nom d’application unique (les caractères valides sont a-z, 0-9, et -).

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 :

{
  "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’application

Accédez à l’application déployée dans (http://<app_name>.azurewebsites.net). Le chargement de l’application peut prendre plusieurs minutes. Si vous recevez une erreur, attendez quelques minutes supplémentaires, puis actualisez le navigateur.

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

Félicitations, vous avez créé une application à plusieurs conteneurs dans Web App pour conteneurs.

Nettoyer le déploiement

Une fois l’exemple de script exécuté, la commande suivante permet de supprimer le groupe de ressources et toutes les ressources associées.

az group delete --name myResourceGroup

Étapes suivantes