Samouczek: Tworzenie aplikacji wielokontenerowej (w wersji zapoznawczej) przy użyciu funkcji Web App for Containers

Uwaga

Kontenery przyczepki (wersja zapoznawcza) będą pomyślnie obsługiwać aplikacje z wieloma kontenerami w usłudze App Service. Aby rozpocząć, zobacz Samouczek: konfigurowanie kontenera przyczepki dla kontenera niestandardowego w usłudze aplikacja systemu Azure Service (wersja zapoznawcza).

Funkcja Web App for Containers oferuje elastyczny sposób korzystania z obrazów platformy Docker. Z tego samouczka dowiesz się, jak utworzyć aplikację wielokontenerową przy użyciu rozwiązań WordPress i MySQL. Użyjesz tego samouczka w usłudze Cloud Shell, ale możesz również uruchomić te polecenia lokalnie za pomocą narzędzia wiersza polecenia interfejsu wiersza polecenia platformy Azure (w wersji 2.0.32 lub nowszej).

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Konwertowanie konfiguracji narzędzia Docker Compose do użycia z funkcją Web App for Containers
  • Wdrażanie aplikacji wielokontenerowej na platformie Azure
  • Dodawanie ustawień aplikacji
  • Używanie magazynu trwałego na potrzeby kontenerów
  • Nawiązywanie połączenia z usługą Azure Database for MySQL
  • Rozwiązywanie problemów

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

Do ukończenia tego samouczka potrzebne jest doświadczenie w pracy z aplikacją Docker Compose.

Pobierz przykład

Na potrzeby tego samouczka użyjesz pliku compose z platformy Docker, ale zmodyfikujesz go tak, aby zawierał usługę Azure Database for MySQL, magazyn trwały i usługę Redis. Plik konfiguracji można znaleźć na stronie z przykładami dla platformy Azure. W poniższym przykładzie zwróć uwagę, że depends_on jest to nieobsługiwana opcja i jest ignorowana. Aby uzyskać informacje o obsługiwanych opcjach konfiguracji, zobacz Opcje narzędzia Docker Compose.

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:

W usłudze Cloud Shell utwórz katalog samouczka, a następnie przejdź do niego.

mkdir tutorial

cd tutorial

Uruchom następujące polecenie, aby sklonować przykładowe repozytorium aplikacji do katalogu samouczka. Następnie zmień katalog na multicontainerwordpress.

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

cd multicontainerwordpress

Tworzenie grupy zasobów

Grupa zasobów to logiczny kontener, w którym są wdrażane i zarządzane zasoby platformy Azure, takie jak aplikacje internetowe, bazy danych i konta magazynu. Na przykład można później usunąć całą grupę zasobów w jednym prostym kroku.

W usłudze Cloud Shell utwórz grupę zasobów za pomocą polecenia az group create. Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji Południowo-środkowe stany USA. Aby wyświetlić wszystkie obsługiwane lokalizacje dla usługi App Service w systemie Linux w warstwie Standardowa, uruchom polecenie az appservice list-locations --sku S1 --linux-workers-enabled.

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

Zasadniczo grupy zasobów i zasoby są tworzone w pobliskim regionie.

Po zakończeniu działania polecenia zostaną wyświetlone dane wyjściowe JSON z właściwościami grupy zasobów.

Tworzenie planu usługi Azure App Service

W usłudze Cloud Shell utwórz plan usługi App Service w grupie zasobów za pomocą polecenia az appservice plan create.

Poniższy przykład tworzy plan usługi App Service o nazwie myAppServicePlan przy użyciu warstwy cenowej Standardowa (--sku S1) w kontenerze systemu Linux (--is-linux).

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

Po utworzeniu planu usługi App Service usługa Cloud Shell wyświetli informacje podobne do następujących:

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

Narzędzie Docker Compose z kontenerami WordPress i MySQL

Tworzenie aplikacji narzędzia Docker Compose

W usłudze Cloud Shell utwórz wielokontenerową aplikację internetową w ramach planu usługi App Service myAppServicePlan, używając polecenia az webapp create. Nie zapomnij zastąpić <nazwy> aplikacji unikatową nazwą aplikacji.

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

Po utworzeniu aplikacji internetowej w usłudze Cloud Shell zostaną wyświetlone dane wyjściowe podobne do następujących:

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

Przechodzenie do aplikacji

Przejdź do wdrożonej aplikacji pod adresem http://<app-name>.azurewebsites.net. Ładowanie aplikacji może potrwać kilka minut. Jeśli wystąpi błąd, zaczekaj jeszcze kilka minut, a następnie odśwież przeglądarkę. Jeśli występują problemy i chcesz je rozwiązać, sprawdź dzienniki kontenera.

Przykładowa aplikacja wielokontenerowa funkcji Web App for Containers

Gratulacje, udało Ci się utworzyć aplikację wielokontenerową funkcji Web App for Containers. Następnie skonfigurujesz aplikację do użycia usługi Azure Database for MySQL. Na razie nie instaluj rozwiązania WordPress.

Nawiązywanie połączenia z produkcyjną bazą danych

Używanie kontenerów baz danych w środowisku produkcyjnym jest niezalecane. Kontenery lokalne nie są skalowalne. Zamiast tego użyjesz usługi Azure Database for MySQL, która jest skalowalna.

Tworzenie serwera usługi Azure Database for MySQL

Utwórz serwer usługi Azure Database for MySQL, używając polecenia az mysql server create.

W poniższym poleceniu zastąp nazwę serwera MySQL, gdzie zostanie wyświetlony symbol zastępczy mysql-server-name> (prawidłowe znaki to a-z, 0-9i -).< Ta nazwa jest częścią nazwy hosta serwera MySQL (<mysql-server-name>.database.windows.net) i musi być unikatowa w skali globalnej.

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

Tworzenie serwera może potrwać kilka minut. Po utworzeniu serwera MySQL w usłudze Cloud Shell zostaną wyświetlone informacje podobne do następujących:

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

Konfigurowanie zapory serwera

Przy użyciu polecenia az mysql server firewall-rule create utwórz regułę zapory dla serwera MySQL, aby zezwolić na połączenia klientów. Po ustawieniu początkowego i końcowego adresu IP na 0.0.0.0 zapora będzie otwierana tylko dla innych zasobów platformy Azure.

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

Napiwek

Reguła zapory może być jeszcze bardziej restrykcyjna, jeśli zostaną użyte tylko adresy IP dla ruchu wychodzącego używane przez aplikację.

Tworzenie bazy danych WordPress

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

Po utworzeniu bazy danych w usłudze Cloud Shell zostaną wyświetlone informacje podobne do następujących:

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

Konfigurowanie zmiennych bazy danych w rozwiązaniu WordPress

Aby połączyć aplikację WordPress z nowym serwerem MySQL, należy skonfigurować kilka zmiennych środowiskowych właściwych dla rozwiązania WordPress, w tym ścieżkę urzędu certyfikacji SSL, definiowaną przez zmienną MYSQL_SSL_CA. Poniższy obraz niestandardowy zawiera urząd Baltimore CyberTrust Root firmy DigiCert.

Aby wprowadzić te zmiany, uruchom polecenie az webapp config appsettings set w usłudze Cloud Shell. Ustawienia aplikacji są rozdzielane spacjami i rozróżniana jest w nich wielkość liter.

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"

Po utworzeniu ustawień aplikacji w usłudze Cloud Shell zostaną wyświetlone informacje podobne do następujących:

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

Aby uzyskać więcej informacji na temat zmiennych środowiskowych, zobacz Konfigurowanie zmiennych środowiskowych.

Używanie obrazu niestandardowego dla protokołu TLS/SSL mySQL i innych konfiguracji

Domyślnie protokół TLS/SSL jest używany przez usługę Azure Database for MySQL. Platforma WordPress wymaga dodatkowej konfiguracji do używania protokołu TLS/SSL z programem MySQL. "Oficjalny obraz" WordPress nie zapewnia dodatkowej konfiguracji, ale obraz niestandardowy został przygotowany dla Twojej wygody. W praktyce możesz dodać wymagane zmiany do własnego obrazu.

Ten obraz niestandardowy został utworzony na podstawie „oficjalnego obrazu” rozwiązania WordPress, dostępnego w witrynie Docker Hub. W obrazie niestandardowym na potrzeby usługi Azure Database for MySQL wprowadzono następujące zmiany:

Wprowadzono następujące zmiany na potrzeby usługi Redis (potrzebne w kolejnej sekcji):

Aby użyć obrazu niestandardowego, należy zaktualizować plik docker-compose-wordpress.yml. W usłudze Cloud Shell otwórz edytor tekstów i zmień element image: wordpress , aby używać polecenia image: mcr.microsoft.com/azuredocs/multicontainerwordpress. Kontener bazy danych nie będzie już potrzebny. Usuń sekcje db, environment, depends_on i volumes z pliku konfiguracji. Zawartość pliku powinna wyglądać podobnie do następującego kodu:

version: '3.3'

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

Aktualizowanie aplikacji przy użyciu nowej konfiguracji

W usłudze Cloud Shell zmień konfigurację wielokontenerowej aplikacji internetowej, używając polecenia az webapp config container set. Nie zapomnij zastąpić <nazwy aplikacji nazwą> utworzonej wcześniej aplikacji internetowej.

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

Po zmianie konfiguracji aplikacji internetowej usługa Cloud Shell wyświetli informacje podobne do następujących:

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

Przechodzenie do aplikacji

Przejdź do wdrożonej aplikacji pod adresem http://<app-name>.azurewebsites.net. Aplikacja korzysta teraz z usługi Azure Database for MySQL.

Przykładowa aplikacja wielokontenerowa funkcji Web App for Containers

Dodawanie magazynu trwałego

Twoja aplikacja wielokontenerowa działa teraz w funkcji Web App for Containers. Jeśli jednak teraz zainstalujesz rozwiązanie WordPress, a później ponownie uruchomisz aplikację, nie znajdziesz instalacji rozwiązania WordPress. Dzieje się tak, ponieważ konfiguracja narzędzia Docker Compose aktualnie wskazuje lokalizację magazynu wewnątrz kontenera. Pliki zainstalowane w kontenerze są zachowywane tylko do momentu ponownego uruchomienia aplikacji. W tej sekcji dodasz magazyn trwały do kontenera WordPress.

Skonfiguruj zmienne środowiskowe

Aby użyć magazynu trwałego, włączysz to ustawienie w usłudze App Service. Aby wprowadzić tę zmianę, uruchom polecenie az webapp config appsettings set w usłudze Cloud Shell. Ustawienia aplikacji są rozdzielane spacjami i rozróżniana jest w nich wielkość liter.

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

Po utworzeniu ustawień aplikacji w usłudze Cloud Shell zostaną wyświetlone informacje podobne do następujących:

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

Modyfikowanie pliku konfiguracji

W usłudze Cloud Shell otwórz plik docker-compose-wordpress.yml w edytorze tekstów.

Opcja volumes mapuje system plików na katalog w kontenerze. ${WEBAPP_STORAGE_HOME} to zmienna środowiskowa w usłudze App Service mapowana na magazyn trwały aplikacji. Użyjesz tej zmiennej środowiskowej w opcji „volumes”, aby pliki rozwiązania WordPress były instalowane w magazynie trwałym, a nie w kontenerze. Wprowadź poniższe zmiany do pliku:

W sekcji wordpress dodaj opcję volumes zgodnie z poniższym kodem:

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

Aktualizowanie aplikacji przy użyciu nowej konfiguracji

W usłudze Cloud Shell zmień konfigurację wielokontenerowej aplikacji internetowej, używając polecenia az webapp config container set. Nie zapomnij zastąpić <nazwy> aplikacji unikatową nazwą aplikacji.

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

Po uruchomieniu polecenia zostaną wyświetlone dane wyjściowe podobne do poniższych:

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

Przechodzenie do aplikacji

Przejdź do wdrożonej aplikacji pod adresem http://<app-name>.azurewebsites.net.

Kontener WordPress korzysta teraz z usługi Azure Database for MySQL i magazynu trwałego.

Dodawanie kontenera Redis

„Oficjalny obraz” rozwiązania WordPress nie zawiera zależności wymaganych na potrzeby usługi Redis. Ten obraz niestandardowy został przygotowany z uwzględnieniem tych zależności i dodatkowej konfiguracji wymaganej do korzystania z usługi Redis z rozwiązaniem WordPress. W praktyce możesz dodać wymagane zmiany do własnego obrazu.

Ten obraz niestandardowy został utworzony na podstawie „oficjalnego obrazu” rozwiązania WordPress, dostępnego w witrynie Docker Hub. W obrazie niestandardowym na potrzeby usługi Redis wprowadzono następujące zmiany:

Dodaj kontener Redis na końcu pliku konfiguracji, zgodnie z następującym przykładem:

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

Skonfiguruj zmienne środowiskowe

Aby używać usługi Redis, należy włączyć ustawienie WP_REDIS_HOST w usłudze App Service. Jest to ustawienie wymagane w celu umożliwienia komunikacji rozwiązania WordPress z hostem usługi Redis. Aby wprowadzić tę zmianę, uruchom polecenie az webapp config appsettings set w usłudze Cloud Shell. Ustawienia aplikacji są rozdzielane spacjami i rozróżniana jest w nich wielkość liter.

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

Po utworzeniu ustawień aplikacji w usłudze Cloud Shell zostaną wyświetlone informacje podobne do następujących:

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

Aktualizowanie aplikacji przy użyciu nowej konfiguracji

W usłudze Cloud Shell zmień konfigurację wielokontenerowej aplikacji internetowej, używając polecenia az webapp config container set. Nie zapomnij zastąpić <nazwy> aplikacji unikatową nazwą aplikacji.

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

Po uruchomieniu polecenia zostaną wyświetlone dane wyjściowe podobne do poniższych:

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

Przechodzenie do aplikacji

Przejdź do wdrożonej aplikacji pod adresem http://<app-name>.azurewebsites.net.

Wykonaj odpowiednie czynności i zainstaluj rozwiązanie WordPress.

Łączenie rozwiązania WordPress z usługą Redis

Zaloguj się do administratora platformy WordPress. W obszarze nawigacji po lewej stronie wybierz pozycję Wtyczki, a następnie wybierz pozycję Zainstalowane wtyczki.

Wybieranie wtyczek rozwiązania WordPress

Pokaż wszystkie wtyczki

Na stronie Plugins (Wtyczki) znajdź wtyczkę Redis Object Cache i kliknij przycisk Activate (Aktywuj).

Aktywowanie usługi Redis

Kliknij pozycję Settings (Ustawienia).

Klikanie pozycji Settings (Ustawienia)

Kliknij przycisk Enable Object Cache (Włącz usługę Object Cache).

Klikanie przycisku „Enable Object Cache” (Włącz usługę Object Cache)

Rozwiązanie WordPress połączy się z serwerem usługi Redis. Stan połączenia jest widoczny na tej samej stronie.

Platforma WordPress łączy się z serwerem Redis. Stan połączenia jest wyświetlany na tej samej stronie.

Gratulacje, udało Ci się połączyć rozwiązanie WordPress z usługą Redis. Aplikacja gotowa do produkcji korzysta teraz z usługi Azure Database for MySQL, magazynu trwałego i usługi Redis. Możesz teraz skalować swój plan usługi App Service na wiele wystąpień.

Znajdowanie dzienników kontenerów platformy Docker

Jeśli podczas korzystania z wielu kontenerów wystąpią problemy, możesz wyświetlić dzienniki kontenerów, przechodząc do lokalizacji https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Zostaną wyświetlone dane wyjściowe podobne do następujących:

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

Zobaczysz jeden dziennik dla każdego kontenera oraz dodatkowy dziennik procesu nadrzędnego. Skopiuj odpowiednią wartość href do przeglądarki, aby wyświetlić dziennik.

Czyszczenie wdrożenia

Po wykonaniu przykładowego skryptu możesz uruchomić następujące polecenie, aby usunąć grupę zasobów i wszystkie skojarzone z nią zasoby.

az group delete --name myResourceGroup

Następne kroki

W tym samouczku zawarto informacje na temat wykonywania następujących czynności:

  • Konwertowanie konfiguracji narzędzia Docker Compose do użycia z funkcją Web App for Containers
  • Wdrażanie aplikacji wielokontenerowej na platformie Azure
  • Dodawanie ustawień aplikacji
  • Używanie magazynu trwałego na potrzeby kontenerów
  • Nawiązywanie połączenia z usługą Azure Database for MySQL
  • Rozwiązywanie problemów

Przejdź do następnego samouczka, aby dowiedzieć się, jak zabezpieczyć aplikację przy użyciu domeny niestandardowej i certyfikatu.

Możesz też zapoznać się z innymi zasobami: