Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья является частью 3 серии учебников по контейнеризации и развертыванию веб-приложения Python в Служба приложений Azure. В части 2 вы создали и запустили образ контейнера локально. В этой статье вы создадите то же Python веб-приложение непосредственно в Реестр контейнеров Azure без локальной установки Docker. Собрать образ в Azure обычно быстрее и проще, чем собрать его локально, а затем отправить в реестр. Создание образов на основе облака также устраняет необходимость работы Docker в среде разработки.
Служба приложений Azure позволяет развертывать и запускать контейнерные веб-приложения с помощью конвейеров CI/CD с таких платформ, как Docker Hub, Реестр контейнеров Azure и Azure DevOps. После того как образ Docker будет помещён в Реестр контейнеров Azure, его можно развернуть в Служба приложений Azure.
Необходимые условия
Прежде чем начать, убедитесь, что вы выполнили часть 2 этой серии учебников, которая охватывает:
- Клонирование примера репозитория (Django или Flask).
- Создание группы ресурсов для ресурсов Azure.
- Запуск контейнерного приложения локально для проверки его работы.
Кроме того, вам понадобится следующее:
- Активная подписка Azure. Если у вас ее нет, создайте бесплатную учетную запись.
- Локально установленный Azure CLI (для шагов с Azure CLI) или доступ к Azure Cloud Shell.
- Visual Studio Code с установленным расширением Docker (для шагов VS Code).
Это важно
Пример Dockerfile использует python:3.8-slim в качестве базового образа.
Python 3.8 достигли окончания срока действия в октябре 2024 года и больше не получают обновления системы безопасности. Обновите Dockerfile, чтобы использовать python:3.12-slim или python:3.13-slim для рабочих развертываний.
На этой схеме службы выделены компоненты, описанные в этой статье.
Создание реестра контейнеров Azure
Если у вас уже есть Реестр контейнеров Azure, пропустите этот шаг и перейдите к следующему шагу. В противном случае создайте новый Реестр контейнеров Azure с помощью Azure CLI.
Команды Azure CLI можно выполнять в Azure Cloud Shell или локальной среде разработки с установленным Azure CLI.
Заметка
Используйте те же имена, что и в части 2 этого учебного пособия.
Создайте реестр контейнеров 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. # If the name is already taken, you'll receive an error. Choose a different name and retry. REGISTRY_NAME='msdocscontainerregistryname' echo "Creating Azure Container Registry $REGISTRY_NAME..." az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku StandardВ выходных данных JSON команды найдите значение
loginServer. Это значение представляет полное имя реестра (все строчные буквы) и содержит имя реестра.Пример результата:
{ "loginServer": "msdocscontainerregistryname.azurecr.io", "name": "msdocscontainerregistryname", ... }Если вы используете Azure CLI на локальном компьютере, выполните команду az acr login, чтобы войти в реестр контейнеров.
az acr login -n $REGISTRY_NAMEПараметр
-nпринимает короткое имя реестра (например,msdocscontainerregistryname) или полное имя реестра (msdocscontainerregistryname.azurecr.io). Команда выполняет проверку подлинности Docker с помощью Реестр контейнеров Azure с помощью учетных данных Azure CLI.Ожидаемые выходные данные:
Login SucceededЗаметка
Если вы используете Azure Cloud Shell, вам не нужно выполнять
az acr loginкоманду, так как сеанс Cloud Shell автоматически обрабатывает проверку подлинности.
Создание образа в реестре контейнеров Azure
Вы можете создать образ контейнера непосредственно в Azure, используя различные подходы:
- Azure Cloud Shell позволяет создавать образ полностью в облаке, независимо от локальной среды.
- Кроме того, можно использовать VS Code или Azure CLI для создания образа в Azure из локальной установки без необходимости локального запуска Docker.
Команды Azure CLI можно выполнять в локальной среде разработки, используя установленный Azure CLI или Azure Cloud Shell.
В консоли перейдите в корневую папку для клонированного репозитория из части 2 этого руководства.
Создайте образ контейнера с помощью команды az acr build .
Локальная разработка:
az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .Azure Cloud Shell:
Если вы используете Azure Cloud Shell, укажите URL-адрес репозитория GitHub вместо локального пути (
.):# For Django sample: 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 # For Flask sample: 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Последним аргументом (
.или URL-адресом Git) является контекст сборки Docker — каталог, содержащий файлы Dockerfile и приложения, которые Docker использует для сборки образа.Убедитесь с помощью команды az acr repository list, что образ контейнера был создан.
az acr repository list -n $REGISTRY_NAMEОжидаемые выходные данные:
[ "msdocspythoncontainerwebapp" ]