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.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
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.
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