Поделиться через


Создание контейнерного веб-приложения Python в Azure

В этой части серии руководств вы узнаете, как создать контейнерное веб-приложение Python непосредственно в реестре контейнеров Azure без локальной установки Docker. Построение образа Docker в Azure часто бывает быстрее и проще, чем создание образа локально с последующей его загрузкой в реестр контейнеров Azure. Кроме того, создание образов на облачной основе устраняет необходимость запуска Docker в вашей среде разработки.

Служба приложений позволяет запускать веб-приложения в контейнерах и развёртывать их с использованием возможностей непрерывной интеграции/непрерывного развёртывания (CI/CD) через Docker Hub, Azure Container Registry и Visual Studio Team Services. Эта статья является частью 3 из 5 части серии руководств о том, как контейнеризировать и развернуть веб-приложение на языке Python в Azure App Service. В этой части учебника вы узнаете, как создать контейнеризованное веб-приложение на Python в Azure.

Служба приложений Azure позволяет развертывать и запускать контейнерные веб-приложения с помощью конвейеров CI/CD с таких платформ, как Docker Hub, Реестр контейнеров Azure и Azure DevOps. Эта статья является частью 3 из 5 частей учебного пособия.

В части 2 этой серии руководств вы создали и запустили образ контейнера локально. В отличие от этого, в этой части учебника вы создаете (контейнеризируете) то же самое веб-приложение на Python непосредственно в образ Docker в Azure Container Registry. Создание образа в Azure обычно быстрее и проще, чем локальное создание, а затем отправка образа в реестр. Кроме того, для создания в облаке не требуется, чтобы Docker работал в среде разработки.

После того как образ Docker находится в реестре контейнеров Azure, его можно развернуть в службе приложений Azure.

На этой схеме службы выделены компоненты, описанные в этой статье.

Снимок экрана, на котором представлены службы, используемые в руководстве - контейнерное приложение Python в Azure с выделенным путём сборки в облаке.

Создание реестра контейнеров Azure

Если у вас уже есть существующий реестр контейнеров Azure, который вы хотите использовать, пропустите этот шаг и переходите к следующему. В противном случае создайте реестр контейнеров Azure с помощью Azure CLI.

Команды Azure CLI можно запускать в Azure Cloud Shell или в вашей локальной среде разработки с установленным Azure CLI.

Заметка

Используйте те же имена, что и в части 2 этого учебного пособия.

  1. Создайте реестр контейнеров Azure с помощью команды az acr create.

    #!/bin/bash
    # Use the resource group that you created in part 2 of this tutorial series.
    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters.
    REGISTRY_NAME='msdocscontainerregistryname'
    
    echo "Creating Azure Container Registry $REGISTRY_NAME..."
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Standard
    

    В выходных данных JSON команды найдите значение loginServer. Это значение представляет полное имя реестра (все строчные буквы) и содержит имя реестра.

  2. Если вы используете Azure CLI на вашем локальном компьютере, выполните команду az acr login, чтобы войти в контейнерный реестр.

    az acr login -n $REGISTRY_NAME
    

    Команда добавляет "azurecr.io" к имени, чтобы создать полностью квалифицированное имя реестра. Если успешно, вы увидите сообщение "Вход выполнен".

    Заметка

    В Azure Cloud Shell az acr login command не требуется, так как проверка подлинности обрабатывается автоматически через сеанс Cloud Shell. Однако при возникновении проблем с проверкой подлинности его можно использовать.

Создание образа в реестре контейнеров Azure

Вы можете создать образ контейнера непосредственно в Azure, используя различные подходы:

  • Оболочка Azure Cloud Shell позволяет создавать образ полностью в облаке, независимо от вашей локальной среды.
  • В качестве альтернативы вы можете использовать VS Code или Azure CLI, чтобы создать его в Azure из вашей локальной установки, не требуя, чтобы Docker работал локально.

Команды Azure CLI могут быть выполнены в вашей локальной среде разработки с установленным Azure CLI или в Azure Cloud Shell.

  1. В консоли перейдите в корневую папку для клонированного репозитория из части 2 этого руководства.

  2. Создайте образ контейнера, используя команду az acr build.

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    # When using Azure Cloud Shell, run one of the following commands instead:
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git
    

    Последним аргументом команды является полный путь к репозиторию. При запуске в Azure Cloud Shell используйте https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git пример приложения Django и https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git пример приложения Flask.

  3. Убедитесь, что образ контейнера был создан с помощью команды az acr repository list.

    az acr repository list -n $REGISTRY_NAME
    

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