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.
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
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-9
en -
).>
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.
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