Создание многоконтейнерного приложения (предварительная версия) с использованием конфигурации Docker Compose

Примечание.

Контейнеры на стороне (предварительная версия) будут успешными приложениями с несколькими контейнерами в Служба приложений. Сведения о начале работы см. в руководстве по настройке контейнера на стороне для пользовательского контейнера в службе приложение Azure (предварительная версия).

Платформа Веб-приложение для контейнеров предоставляет гибкие возможности для использования образов Docker. В этом кратком руководстве показано, как в Cloud Shell развернуть многоконтейнерное приложение (предварительная версия) на платформе "Веб-приложение для контейнеров", используя конфигурацию Docker Compose.

Пример многоконтейнерного приложения на платформе

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Для работы с этой статьей требуется Azure CLI версии 2.0.32 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Скачивание примера приложения

В этом кратком руководстве используется файл compose из Docker. Файл конфигурации можно найти в репозитории примеров для 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:

В Cloud Shell создайте каталог quickstart и перейдите в него.

mkdir quickstart

cd $HOME/quickstart

Затем выполните следующую команду, чтобы клонировать репозиторий с примером приложения в локальный каталог quickstart. Затем перейдите в каталог multicontainerwordpress.

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

cd multicontainerwordpress

Создание или изменение группы ресурсов

Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (например, веб-приложений, баз данных и учетных записей хранения) и управление ими. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.

В Cloud Shell создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении Центрально-южная часть США. Чтобы просмотреть все поддерживаемые расположения для службы приложений в Linux на уровне Стандартный, выполните команду az appservice list-locations --sku S1 --linux-workers-enabled.

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

Группу ресурсов и ресурсы целесообразно создавать в ближайшем к вам регионе.

По завершении команды в выходных данных JSON будут отображаться свойства группы ресурсов.

Создание плана службы приложений Azure

В Cloud Shell создайте план службы приложений в группе ресурсов с помощью команды az appservice plan create.

В следующем примере создается план службы приложений с именем myAppServicePlan в ценовой категории Стандартный (--sku S1) в контейнере Linux (--is-linux).

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

После создания плана службы приложений в Azure CLI отображается информация следующего вида:

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

Примечание.

Docker Compose в службах приложение Azure в настоящее время имеет ограничение в 4000 символов при преобразовании в Base64 в настоящее время.

В терминале Cloud Shell создайте многоконтейнерное веб-приложение в рамках плана службы приложений myAppServicePlan с помощью команды az webapp create. Замените <app_name>> уникальным именем приложения (допустимые символы: a-z, 0-9 и -).

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

Когда веб-приложение будет создано, в Azure CLI отобразится примерно следующее:

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

Переход в приложение

Перейдите в развернутое приложение по адресу http://<app_name>.azurewebsites.net. Для загрузки приложения может потребоваться несколько минут. Если произойдет ошибка, подождите несколько минут, а затем обновите страницу в браузере.

Пример многоконтейнерного приложения на платформе

Поздравляем! Вы создали многоконтейнерное приложение на платформе "Веб-приложение для контейнеров".

Очистка развертывания

Выполнив пример сценария, можно удалить группу ресурсов и все связанные с ней ресурсы при помощи приведенной ниже команды.

az group delete --name myResourceGroup

Следующие шаги