Erstellen einer App mit mehreren Containern (Vorschauversion) mithilfe einer Docker Compose-Konfiguration

Hinweis

Sidecar-Container (Vorschau) sind mit Mehrcontainer-Apps in App Service erfolgreich. Informationen zu den ersten Schritten finden Sie unter Tutorial: Konfigurieren eines Sidecar-Containers für benutzerdefinierte Container in Azure App Service (Vorschau).

Web-App für Container umfasst eine flexible Möglichkeit zum Verwenden von Docker-Images. In dieser Schnellstartanleitung wird veranschaulicht, wie Sie eine App mit mehreren Containern (Vorschauversion) für Web-App für Container in Cloud Shell per Docker Compose-Konfiguration bereitstellen.

Beispiel-App mit mehreren Containern in Web-App für Container

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Für diesen Artikel ist mindestens Version 2.0.32 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.

Herunterladen des Beispiels

Für diesen Schnellstart verwenden Sie die Compose-Datei von Docker. Die Konfigurationsdatei finden Sie in den Beispielen für 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:

Erstellen Sie in Cloud Shell ein Schnellstartverzeichnis, und wechseln Sie dorthin.

mkdir quickstart

cd $HOME/quickstart

Führen Sie als Nächstes den folgenden Befehl aus, um das Beispiel-App-Repository in Ihrem Schnellstartverzeichnis zu klonen. Wechseln Sie anschließend in das Verzeichnis multicontainerwordpress.

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

cd multicontainerwordpress

Erstellen einer Ressourcengruppe

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen wie Web-Apps, Datenbanken und Speicherkonten bereitgestellt und verwaltet werden. Sie können z.B. die gesamte Ressourcengruppe später in einem einfachen Schritt löschen.

Erstellen Sie in Cloud Shell mit dem Befehl az group create eine Ressourcengruppe. Im folgenden Beispiel wird am Standort South Central US (USA, Süden-Mitte) die Ressourcengruppe myResourceGroup erstellt. Wenn Sie alle unterstützten Standorte für App Service unter Linux im Standard-Tarif anzeigen möchten, führen Sie den Befehl az appservice list-locations --sku S1 --linux-workers-enabled aus.

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

Im Allgemeinen erstellen Sie Ressourcengruppen und Ressourcen in einer Region in Ihrer Nähe.

Nach Ausführung dieses Befehls werden die Ressourcengruppeneigenschaften in einer JSON-Ausgabe angezeigt.

Erstellen eines Azure App Service-Plans

Erstellen Sie in Cloud Shell mit dem Befehl az appservice plan create einen App Service-Plan in der Ressourcengruppe.

Im folgenden Beispiel wird ein App Service-Plan mit dem Namen myAppServicePlan in einem Linux-Container (--is-linux) für den Tarif Standard (--sku S1) erstellt.

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

Nach Erstellung des App Service-Plans zeigt die Azure-Befehlszeilenschnittstelle Informationen wie im folgenden Beispiel an:

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

Erstellen einer Docker Compose-App

Hinweis

Docker Compose auf Azure App Services hat derzeit ein Limit von 4.000 Zeichen, wenn es in Base64 konvertiert wird.

Erstellen Sie im Cloud Shell-Terminal eine Web-App mit mehreren Containern im App Service-Plan myAppServicePlan, indem Sie den Befehl az webapp create verwenden. Vergessen Sie nicht, <app_name> durch einen eindeutigen App-Namen zu ersetzen (gültige Zeichen sind a-z, 0-9 und -).

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

Nach Erstellung der Web-App zeigt die Azure CLI eine Ausgabe wie im folgenden Beispiel an:

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

Navigieren zur App

Navigieren Sie zur bereitgestellten App unter http://<app_name>.azurewebsites.net. Das Laden der App kann einige Minuten dauern. Wenn Sie einen Fehler erhalten, sollten Sie einige Minuten warten und dann den Browser aktualisieren.

Beispiel-App mit mehreren Containern in Web-App für Container

Glückwunsch! Sie haben in Web-App für Container eine App mit mehreren Containern erstellt.

Bereinigen der Bereitstellung

Nach Ausführung des Beispielskripts können mit dem folgenden Befehl die Ressourcengruppe und alle damit verbundenen Ressourcen entfernt werden.

az group delete --name myResourceGroup

Nächste Schritte