Een app met meerdere containers (preview) maken met behulp van een configuratie van Docker Compose

Notitie

Sidecar-containers (preview) slagen in apps met meerdere containers in App Service. Zie Zelfstudie: Een sidecarcontainer configureren voor aangepaste container in Azure-app Service (preview) om aan de slag te gaan.

Met behulp van Web App for Containers kunt u op een flexibele manier Docker-installatiekopieën gebruiken. Deze quickstart laat zien hoe u een app met meerdere containers (preview-versie) implementeert in Web App for Containers in Cloud Shell met behulp van een configuratie van Docker Compose.

Voorbeeld-app met meerdere containers in Web App for Containers

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

Voor dit artikel is versie 2.0.32 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Het voorbeeld downloaden

Voor deze snelstart gebruikt u het Opstellen-bestand van Docker. U vindt het configuratiebestand in Azure-voorbeelden.

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:

Maak een map 'snelstart' in de Cloud Shell en ga er vervolgens naartoe.

mkdir quickstart

cd $HOME/quickstart

Voer vervolgens de volgende opdracht uit om de voorbeeld-app-opslagplaats te klonen naar de map 'snelstart'. Ga vervolgens maar de map multicontainerwordpress.

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

cd multicontainerwordpress

Een brongroep maken

Een resourcegroep is een logische container waarin Azure-resources, zoals web-apps, databases en opslagaccounts, worden geïmplementeerd en beheerd. U kunt bijvoorbeeld later de hele resourcegroep in één stap verwijderen.

Maak een resourcegroep in Cloud Shell met de opdracht az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - zuid-centraal. Als u alle ondersteunde locaties voor App Service op Linux in prijscategorie Standard wilt zien, voert u de opdracht az appservice list-locations --sku S1 --linux-workers-enabled uit.

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

In het algemeen maakt u een resourcegroep en resources in een regio bij u in de buurt.

Wanneer de opdracht is voltooid, laat een JSON-uitvoer u de eigenschappen van de resource-groep zien.

Een Azure App Service-plan maken

Maak in Cloud Shell een App Service-plan in de resourcegroep met de opdracht az appservice plan create.

In het volgende voorbeeld wordt een App Service-plan gemaakt met de naam myAppServicePlan in de prijscategorie Standard (--sku S1) en in een Linux-container (--is-linux).

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

Wanneer het App Service-plan is gemaakt, toont de Azure CLI soortgelijke informatie als in het volgende voorbeeld:

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

Een Docker Compose-app maken

Notitie

Docker Compose op Azure-app Services heeft momenteel een limiet van 4000 tekens wanneer deze op dit moment wordt geconverteerd naar Base64.

Maak in de Cloud Shell-terminal een web-app met meerdere containers in het myAppServicePlan App Service-plan met de opdracht az webapp create. Vergeet niet om app_name te vervangen door< een unieke app-naam (geldige tekens zijn a-z, 0-9en -).>

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

Wanneer de web-app is gemaakt, toont de Azure CLI soortgelijke uitvoer als in het volgende voorbeeld:

{
  "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. >
}

Bladeren naar de app

Blader naar de geïmplementeerde app in (http://<app_name>.azurewebsites.net). Het laden van de app kan een paar minuten duren. Als u een foutbericht ontvangt, wacht u een paar minuten en vernieuwt u de browser.

Voorbeeld-app met meerdere containers in Web App for Containers

Gefeliciteerd, u hebt een app met meerdere containers gemaakt in Web App for Containers.

Opschonen van implementatie

Na het uitvoeren van het voorbeeldscript kan de volgende opdracht worden gebruikt om de resourcegroep en alle resources die er aan zijn gekoppeld te verwijderen.

az group delete --name myResourceGroup

Volgende stappen