Tutorial: Erstellen einer App mit mehreren Containern (Vorschauversion) über Web-App für Container

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 diesem Tutorial wird beschrieben, wie Sie eine App mit mehreren Containern per WordPress und MySQL erstellen. Sie arbeiten dieses Tutorial in Cloud Shell durch, aber Sie können diese Befehle auch lokal mit dem Azure CLI-Befehlszeilentool (2.0.32 oder höher) ausführen.

In diesem Tutorial lernen Sie Folgendes:

  • Konvertieren einer Docker Compose-Konfiguration für Web-App für Container
  • Bereitstellen einer App mit mehreren Containern in Azure
  • Hinzufügen von Anwendungseinstellungen
  • Verwenden von beständigem Speicher für Ihre Container
  • Herstellen einer Verbindung mit Azure-Datenbank für MySQL
  • Beheben von Fehlern

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

Voraussetzungen

Zum Durcharbeiten dieses Tutorials benötigen Sie Erfahrung mit Docker Compose.

Herunterladen des Beispiels

In diesem Tutorial wird die Compose-Datei aus Docker verwendet. Sie wird jedoch geändert, um Azure Database for MySQL, beständigen Speicher und Redis einzubinden. Die Konfigurationsdatei finden Sie in den Beispielen für Azure. Beachten Sie im folgenden Beispiel, dass depends_on eine nicht unterstützte Option ist und ignoriert wird. Unterstützte Konfigurationsoptionen finden Sie unter Docker Compose-Optionen.

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 Tutorialverzeichnis, und navigieren Sie dann in dieses Verzeichnis.

mkdir tutorial

cd tutorial

Führen Sie als Nächstes den folgenden Befehl aus, um das Beispiel-App-Repository in Ihrem Tutorialverzeichnis 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 der Erstellung des App Service-Plans zeigt Cloud Shell 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
}

Docker Compose mit WordPress und MySQL-Containern

Erstellen einer Docker Compose-App

Erstellen Sie in Cloud Shell 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.

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

Nach Erstellung der Web-App zeigt Cloud Shell 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. Falls Probleme auftreten und Sie die Problembehandlung durchführen möchten, helfen Ihnen die Containerprotokolle weiter.

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. Als Nächstes konfigurieren Sie Ihre App für die Verwendung mit Azure Database for MySQL. Warten Sie noch mit der Installation von WordPress.

Herstellen einer Verbindung mit der Produktionsdatenbank

Es wird nicht empfohlen, Datenbankcontainer in einer Produktionsumgebung zu verwenden. Die lokalen Container sind nicht skalierbar. Stattdessen nutzen Sie Azure Database for MySQL, da dieser Dienst skaliert werden kann.

Erstellen eines Servers für Azure-Datenbank für MySQL

Erstellen Sie mit dem Befehl az mysql server create einen Azure Database for MySQL-Server.

Ersetzen Sie im folgenden Befehl den Platzhalter <mysql-server-name> durch Ihren MySQL-Servernamen (gültige Zeichen sind a-z, 0-9 und -). Dieser Name ist Teil des Hostnamens des MySQL-Servers (<mysql-server-name>.database.windows.net) und muss global eindeutig sein.

az mysql server create --resource-group myResourceGroup --name <mysql-server-name>  --location "South Central US" --admin-user adminuser --admin-password My5up3rStr0ngPaSw0rd! --sku-name B_Gen5_1 --version 5.7

Das Erstellen des Servers kann einige Minuten dauern. Nach dem Erstellen des MySQL-Servers zeigt Cloud Shell Informationen wie im folgenden Beispiel an:

{
  "administratorLogin": "adminuser",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "<mysql-server-name>.database.windows.net",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DBforMySQL/servers/<mysql-server-name>",
  "location": "southcentralus",
  "name": "<mysql-server-name>",
  "resourceGroup": "myResourceGroup",
  ...
}

Konfigurieren der Serverfirewall

Erstellen Sie mit dem Befehl az mysql server firewall-rule create eine Firewallregel für Ihren MySQL-Server, um Clientverbindungen zuzulassen. Wenn sowohl Start- als auch End-IP auf 0.0.0.0 festgelegt ist, wird die Firewall nur für andere Azure-Ressourcen geöffnet.

az mysql server firewall-rule create --name allAzureIPs --server <mysql-server-name> --resource-group myResourceGroup --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

Tipp

Sie können Ihre Firewallregel auch noch restriktiver gestalten und nur die ausgehenden IP-Adressen verwenden, die Ihre App verwendet.

Erstellen der WordPress-Datenbank

az mysql db create --resource-group myResourceGroup --server-name <mysql-server-name> --name wordpress

Nach der Erstellung der Datenbank zeigt Cloud Shell Informationen wie im folgenden Beispiel an:

{
  "additionalProperties": {},
  "charset": "latin1",
  "collation": "latin1_swedish_ci",
  "id": "/subscriptions/12db1644-4b12-4cab-ba54-8ba2f2822c1f/resourceGroups/myResourceGroup/providers/Microsoft.DBforMySQL/servers/<mysql-server-name>/databases/wordpress",
  "name": "wordpress",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.DBforMySQL/servers/databases"
}

Konfigurieren von Datenbankvariablen in WordPress

Zum Herstellen einer Verbindung für die WordPress-App mit diesem neuen MySQL-Server konfigurieren Sie einige WordPress-spezifische Umgebungsvariablen, z.B. den mit MYSQL_SSL_CA definierten SSL-Zertifizierungsstellenpfad. Baltimore CyberTrust Root von DigiCert ist unten im benutzerdefinierten Image angegeben.

Verwenden Sie zum Vornehmen dieser Änderungen in Cloud Shell den Befehl az webapp config appsettings set. Bei App-Einstellungen wird die Groß-/Kleinschreibung berücksichtigt und die Einstellungen sind durch Leerzeichen getrennt.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WORDPRESS_DB_HOST="<mysql-server-name>.mysql.database.azure.com" WORDPRESS_DB_USER="adminuser" WORDPRESS_DB_PASSWORD="My5up3rStr0ngPaSw0rd!" WORDPRESS_DB_NAME="wordpress" MYSQL_SSL_CA="BaltimoreCyberTrustroot.crt.pem"

Nach der Erstellung der App-Einstellung zeigt Cloud Shell Informationen wie im folgenden Beispiel an:

[
  {
    "name": "WORDPRESS_DB_HOST",
    "slotSetting": false,
    "value": "<mysql-server-name>.mysql.database.azure.com"
  },
  {
    "name": "WORDPRESS_DB_USER",
    "slotSetting": false,
    "value": "adminuser"
  },
  {
    "name": "WORDPRESS_DB_NAME",
    "slotSetting": false,
    "value": "wordpress"
  },
  {
    "name": "WORDPRESS_DB_PASSWORD",
    "slotSetting": false,
    "value": "My5up3rStr0ngPaSw0rd!"
  },
  {
    "name": "MYSQL_SSL_CA",
    "slotSetting": false,
    "value": "BaltimoreCyberTrustroot.crt.pem"
  }
]

Weitere Informationen zu Umgebungsvariablen finden Sie unter Konfigurieren von Umgebungsvariablen.

Verwenden eines benutzerdefinierten Images für MySQL-TLS/-SSL und andere Konfigurationen

Azure Database for MySQL nutzt standardmäßig TSL/SSL. Für WordPress ist eine zusätzliche Konfiguration erforderlich, damit TSL/SSL mit MySQL verwendet werden kann. Mit dem offiziellen Image von WordPress wird nicht diese zusätzliche Konfiguration bereitgestellt, sondern es wurde ein benutzerdefiniertes Image erstellt, um Ihnen den Vorgang zu vereinfachen. In der Praxis fügen Sie Ihrem eigenen Image die gewünschten Änderungen hinzu.

Das benutzerdefinierte Image basiert auf dem „offiziellen Image“ von WordPress per Docker-Hub. An diesem benutzerdefinierten Image für Azure Database for MySQL wurden die folgenden Änderungen vorgenommen:

Die folgenden Änderungen wurden für Redis vorgenommen (Verwendung in einem späteren Abschnitt):

Für die Verwendung des benutzerdefinierten Images müssen Sie Ihre Datei „docker-compose-wordpress.yml“ aktualisieren. Öffnen Sie in Cloud Shell einen Text-Editor, und ändern Sie image: wordpress, damit image: mcr.microsoft.com/azuredocs/multicontainerwordpress verwendet wird. Den Datenbankcontainer benötigen Sie nicht mehr. Entfernen Sie die Abschnitte db, environment, depends_on und volumes aus der Konfigurationsdatei. Ihre Datei sollte wie im folgenden Code aussehen:

version: '3.3'

services:
   wordpress:
     image: mcr.microsoft.com/azuredocs/multicontainerwordpress
     ports:
       - "8000:80"
     restart: always

Aktualisieren der App mit einer neuen Konfiguration

Konfigurieren Sie Ihre Web-App mit mehreren Containern in Cloud Shell mit dem Befehl az webapp config container set neu. Vergessen Sie nicht, <App-Name> durch den Namen der zuvor erstellten Web-App zu ersetzen.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml

Nachdem die App neu konfiguriert wurde, zeigt Cloud Shell Informationen wie im folgenden Beispiel an:

[
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICB3b3JkcHJlc3M6CiAgICAgaW1hZ2U6IG1zYW5nYXB1L3dvcmRwcmVzcwogICAgIHBvcnRzOgogICAgICAgLSAiODAwMDo4MCIKICAgICByZXN0YXJ0OiBhbHdheXM="
  }
]

Navigieren zur App

Navigieren Sie zur bereitgestellten App unter http://<app-name>.azurewebsites.net. Die App nutzt jetzt Azure Database for MySQL.

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

Hinzufügen von beständigem Speicher

Ihre App mit mehreren Containern wird jetzt in Web-App für Container ausgeführt. Wenn Sie jetzt WordPress installieren und Ihre App später neu starten, merken Sie, dass Ihre WordPress-Installation nicht mehr vorhanden ist. Dies ist der Fall, weil in Ihrer Docker Compose-Konfiguration derzeit auf einen Speicherort innerhalb Ihres Containers verwiesen wird. Die im Container installierten Dateien werden nicht über den Neustart der App hinaus beibehalten. In diesem Abschnitt fügen Sie Ihrem WordPress-Container beständigen Speicher hinzu.

Konfigurieren von Umgebungsvariablen

Für die Nutzung von beständigem Speicher aktivieren Sie diese Einstellung in App Service. Verwenden Sie zum Vornehmen dieser Änderung in Cloud Shell den Befehl az webapp config appsettings set. Bei App-Einstellungen wird die Groß-/Kleinschreibung berücksichtigt und die Einstellungen sind durch Leerzeichen getrennt.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE

Nach der Erstellung der App-Einstellung zeigt Cloud Shell Informationen wie im folgenden Beispiel an:

[
  < JSON data removed for brevity. >
  {
    "name": "WORDPRESS_DB_NAME",
    "slotSetting": false,
    "value": "wordpress"
  },
  {
    "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE",
    "slotSetting": false,
    "value": "TRUE"
  }
]

Ändern der Konfigurationsdatei

Öffnen Sie in Cloud Shell die Datei docker-compose-wordpress.yml in einem Text-Editor.

Mit der Option volumes wird das Dateisystem einem Verzeichnis im Container zugeordnet. ${WEBAPP_STORAGE_HOME} ist eine Umgebungsvariable in App Service, die dem beständigen Speicher für Ihre App zugeordnet wird. Sie verwenden diese Umgebungsvariable in der Option „volumes“, damit die WordPress-Dateien nicht im Container installiert werden, sondern im beständigen Speicher. Nehmen Sie an der Datei die folgenden Änderungen vor:

Fügen Sie im Abschnitt wordpress die Option volumes hinzu, damit er wie im folgenden Codebeispiel aussieht:

version: '3.3'

services:
   wordpress:
     image: mcr.microsoft.com/azuredocs/multicontainerwordpress
     volumes:
      - ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html
     ports:
       - "8000:80"
     restart: always

Aktualisieren der App mit einer neuen Konfiguration

Konfigurieren Sie Ihre Web-App mit mehreren Containern in Cloud Shell mit dem Befehl az webapp config container set neu. Vergessen Sie nicht, <app-name> durch einen eindeutigen App-Namen zu ersetzen.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml

Nachdem der Befehl ausgeführt wurde, wird die Ausgabe in etwa wie im folgenden Beispiel angezeigt:

[
  {
    "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE",
    "slotSetting": false,
    "value": "TRUE"
  },
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICBteXNxbDoKICAgICBpbWFnZTogbXlzcWw6NS43CiAgICAgdm9sdW1lczoKICAgICAgIC0gZGJfZGF0YTovdmFyL2xpYi9teXNxbAogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgTVlTUUxfUk9PVF9QQVNTV09SRDogZXhhbXBsZXBhc3MKCiAgIHdvcmRwcmVzczoKICAgICBkZXBlbmRzX29uOgogICAgICAgLSBteXNxbAogICAgIGltYWdlOiB3b3JkcHJlc3M6bGF0ZXN0CiAgICAgcG9ydHM6CiAgICAgICAtICI4MDAwOjgwIgogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiBleGFtcGxlcGFzcwp2b2x1bWVzOgogICAgZGJfZGF0YTo="
  }
]

Navigieren zur App

Navigieren Sie zur bereitgestellten App unter http://<app-name>.azurewebsites.net.

Für den WordPress-Container werden jetzt Azure Database for MySQL und beständiger Speicher verwendet.

Hinzufügen des Redis-Containers

Im „offiziellen Image“ von WordPress sind die Abhängigkeiten für Redis nicht enthalten. Diese Abhängigkeiten und die zusätzliche Konfiguration, die für die Verwendung von Redis mit WordPress erforderlich ist, wurden für Sie in diesem benutzerdefinierten Image vorbereitet. In der Praxis fügen Sie Ihrem eigenen Image die gewünschten Änderungen hinzu.

Das benutzerdefinierte Image basiert auf dem „offiziellen Image“ von WordPress per Docker-Hub. Die folgenden Änderungen wurden an diesem benutzerdefinierten Image für Redis vorgenommen:

Fügen Sie den Redis-Container unten in der Konfigurationsdatei hinzu, damit diese wie im folgenden Beispiel aussieht:

version: '3.3'

services:
   wordpress:
     image: mcr.microsoft.com/azuredocs/multicontainerwordpress
     ports:
       - "8000:80"
     restart: always

   redis:
     image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
     environment:
      - ALLOW_EMPTY_PASSWORD=yes
     restart: always

Konfigurieren von Umgebungsvariablen

Für die Nutzung von Redis aktivieren Sie die Einstellung WP_REDIS_HOST in App Service. Dies ist eine erforderliche Einstellung für WordPress, um die Kommunikation mit dem Redis-Host zu ermöglichen. Verwenden Sie zum Vornehmen dieser Änderung in Cloud Shell den Befehl az webapp config appsettings set. Bei App-Einstellungen wird die Groß-/Kleinschreibung berücksichtigt und die Einstellungen sind durch Leerzeichen getrennt.

az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings WP_REDIS_HOST="redis"

Nach der Erstellung der App-Einstellung zeigt Cloud Shell Informationen wie im folgenden Beispiel an:

[
  < JSON data removed for brevity. >
  {
    "name": "WORDPRESS_DB_USER",
    "slotSetting": false,
    "value": "adminuser"
  },
  {
    "name": "WP_REDIS_HOST",
    "slotSetting": false,
    "value": "redis"
  }
]

Aktualisieren der App mit einer neuen Konfiguration

Konfigurieren Sie Ihre Web-App mit mehreren Containern in Cloud Shell mit dem Befehl az webapp config container set neu. Vergessen Sie nicht, <app-name> durch einen eindeutigen App-Namen zu ersetzen.

az webapp config container set --resource-group myResourceGroup --name <app-name> --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml

Nachdem der Befehl ausgeführt wurde, wird die Ausgabe in etwa wie im folgenden Beispiel angezeigt:

[
  {
    "name": "DOCKER_CUSTOM_IMAGE_NAME",
    "value": "COMPOSE|dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICBteXNxbDoKICAgICBpbWFnZTogbXlzcWw6NS43CiAgICAgdm9sdW1lczoKICAgICAgIC0gZGJfZGF0YTovdmFyL2xpYi9teXNxbAogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgTVlTUUxfUk9PVF9QQVNTV09SRDogZXhhbXBsZXBhc3MKCiAgIHdvcmRwcmVzczoKICAgICBkZXBlbmRzX29uOgogICAgICAgLSBteXNxbAogICAgIGltYWdlOiB3b3JkcHJlc3M6bGF0ZXN0CiAgICAgcG9ydHM6CiAgICAgICAtICI4MDAwOjgwIgogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiBleGFtcGxlcGFzcwp2b2x1bWVzOgogICAgZGJfZGF0YTo="
  }
]

Navigieren zur App

Navigieren Sie zur bereitgestellten App unter http://<app-name>.azurewebsites.net.

Führen Sie die Schritte aus, und installieren Sie WordPress.

Herstellen einer Verbindung für WordPress mit Redis

Melden Sie sich bei der WordPress-Administration an. Wählen Sie im linken Navigationsbereich die Option Plugins (Plug-Ins) und dann Installed Plugins (Installierte Plug-Ins).

Auswählen von WordPress-Plug-Ins

Anzeige aller Plug-Ins

Navigieren Sie auf der Seite mit den Plug-Ins zu Redis Object Cache, und klicken Sie auf Activate (Aktivieren).

Aktivieren von Redis

Klicken Sie auf Einstellungen.

Klicken auf „Settings“ (Einstellungen)

Klicken Sie auf die Schaltfläche Enable Object Cache (Object Cache aktivieren).

Klicken auf die Schaltfläche „Enable Object Cache“ (Object Cache aktivieren)

WordPress stellt die Verbindung mit dem Redis-Server her. Der Status der Verbindung wird auf derselben Seite angezeigt.

WordPress stellt eine Verbindung mit dem Redis-Server her. Der Verbindungsstatus wird auf der gleichen Seite angezeigt.

Glückwunsch! . Sie haben für WordPress eine Verbindung mit Redis hergestellt. Für die App, die jetzt für die Produktion bereit ist, werden nun Azure Database for MySQL, beständiger Speicher und Redis verwendet. Sie können Ihren App Service-Plan jetzt auf mehrere Instanzen aufskalieren.

Zugreifen auf Docker-Containerprotokolle

Falls bei der Verwendung mehrerer Container Probleme auftreten, können Sie auf die Containerprotokolle zugreifen, indem Sie zum folgenden Speicherort navigieren: https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Ihnen wird daraufhin eine Ausgabe angezeigt, die in etwa wie im folgenden Beispiel aussieht:

[
   {
      "machineName":"RD00XYZYZE567A",
      "lastUpdated":"2018-05-10T04:11:45Z",
      "size":25125,
      "href":"https://<app-name>.scm.azurewebsites.net/api/vfs/LogFiles/2018_05_10_RD00XYZYZE567A_docker.log",
      "path":"/home/LogFiles/2018_05_10_RD00XYZYZE567A_docker.log"
   }
]

Es ist ein Protokoll für jeden Container und ein zusätzliches Protokoll für den übergeordneten Prozess vorhanden. Kopieren Sie den jeweiligen href-Wert in den Browser, um das Protokoll anzuzeigen.

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

In diesem Tutorial haben Sie Folgendes gelernt:

  • Konvertieren einer Docker Compose-Konfiguration für Web-App für Container
  • Bereitstellen einer App mit mehreren Containern in Azure
  • Hinzufügen von Anwendungseinstellungen
  • Verwenden von beständigem Speicher für Ihre Container
  • Herstellen einer Verbindung mit Azure-Datenbank für MySQL
  • Beheben von Fehlern

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie Ihre App mit einer benutzerdefinierten Domäne und einem Zertifikat schützen.

Oder sehen Sie sich weitere Ressourcen an: