Compartir a través de


Compilación de una aplicación web de Python en contenedor en la nube

Este artículo forma parte de un tutorial sobre cómo incluir e implementar una aplicación web de Python en App de Azure Service. App Service le permite ejecutar aplicaciones web en contenedor e implementarlas mediante funcionalidades de integración continua e implementación continua (CI/CD) con Docker Hub, Azure Container Registry y Visual Studio Team Services. En esta parte del tutorial, aprenderá a compilar la aplicación web de Python en contenedores en la nube.

En la parte opcional anterior de este tutorial, se creó una imagen de contenedor y se ejecutó localmente. En cambio, en esta parte del tutorial, compilará (en contenedores) una aplicación web de Python en una imagen de Docker directamente en Azure Container Registry. La creación de la imagen en Azure suele ser más rápida y sencilla que compilar localmente y, a continuación, insertar la imagen en un registro. Además, la compilación en la nube no requiere que Docker se ejecute en el entorno de desarrollo.

Una vez que la imagen de Docker está en Azure Container Registry, se puede implementar en App de Azure servicio.

En el diagrama de servicio que se muestra a continuación se resaltan los componentes descritos en este artículo.

A screenshot of the services using in the Tutorial - Containerized Python App on Azure with the build-in-cloud path highlighted.

1. Creación de una instancia de Azure Container Registry

Si ya tiene una instancia de Azure Container Registry que puede usar, vaya al paso siguiente. Si no lo hace, cree uno.

Los comandos de la CLI de Azure se pueden ejecutar en Azure Cloud Shell o en una estación de trabajo que tenga la CLI de Azure instalada. Al ejecutar en Cloud Shell, omita el paso 3.

Paso 1. Cree un grupo de recursos si es necesario con el comando az group create . Si ya ha configurado una cuenta de Azure Cosmos DB para MongoDB en la parte 2. Compile y pruebe el contenedor localmente de este tutorial, establezca RESOURCE_GROUP_NAME en el nombre del grupo de recursos que usó para esa cuenta y vaya al paso 2.

RESOURCE_GROUP_NAME='msdocs-web-app-rg'
LOCATION='eastus'

az group create -n $RESOURCE_GROUP_NAME -l $LOCATION

LOCATION debe ser un valor de ubicación de Azure. Elija una ubicación cercana. Puede enumerar los valores de ubicación de Azure con el siguiente comando: az account list-locations -o table.

Paso 2. Cree un registro de contenedor con el comando az acr create .

REGISTRY_NAME='<your Azure Container Registry name>'

az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Basic

REGISTRY_NAME deben ser únicos en Azure y contener 5-50 caracteres alfanuméricos.

En la salida JSON del comando, busque el loginServer valor , que es el nombre completo del Registro (todo en minúsculas) y que debe incluir el nombre del Registro que especificó.

Paso 3. Si ejecuta la CLI de Azure localmente, inicie sesión en el registro mediante el comando az acr login .

az acr login -n $REGISTRY_NAME

El comando agrega "azurecr.io" al nombre para crear el nombre completo del Registro. Si se ejecuta correctamente, verá el mensaje "Login Succeeded".

Nota:

El az acr login comando no es necesario ni se admite en Cloud Shell.

2. Creación de una imagen en Azure Container Registry

Puede compilar la imagen de contenedor directamente en Azure de varias maneras. En primer lugar, puede usar Azure Cloud Shell, que compila la imagen sin usar el entorno local. También puede compilar la imagen de contenedor en Azure desde el entorno local mediante VS Code o la CLI de Azure. La creación de la imagen en la nube no requiere que Docker se ejecute en el entorno local. Si lo necesita, puede seguir las instrucciones de Clonar o descargar la aplicación de ejemplo en la parte 2 de este tutorial para obtener la aplicación web flask o Django de ejemplo.

Los comandos de la CLI de Azure se pueden ejecutar en una estación de trabajo con la CLI de Azure instalada o en Azure Cloud Shell. Al ejecutar en Cloud Shell, omita el paso 1.

Paso 1. Si ejecuta la CLI de Azure localmente, inicie sesión en el registro si aún no lo ha hecho con el comando az acr login .

az acr login -n $REGISTRY_NAME

Si va a acceder al registro desde una suscripción diferente de la que se creó, use el --suffix modificador .

Nota:

El az acr login comando no es necesario ni se admite en Cloud Shell.

Paso 2. Compile la imagen con el comando az acr build .

az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .

En este comando:

  • El punto (".") al final del comando indica la ubicación del código fuente que se va a compilar. Si no ejecuta este comando en el directorio raíz de la aplicación de ejemplo, especifique la ruta de acceso al código.

    En lugar de una ruta de acceso al código del entorno, puede, opcionalmente, especificar una ruta de acceso al repositorio de GitHub de ejemplo: https://github.com/Azure-Samples/msdocs-python-django-container-web-app o https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.

  • Si deja fuera la -t opción (igual --imageque ) , el comando pone en cola una compilación de contexto local sin insertarla en el registro. Compilar sin insertar puede ser útil para comprobar que la imagen se compila.

Paso 3. Confirme que se creó la imagen de contenedor con el comando az acr repository list .

az acr repository list -n $REGISTRY_NAME

Paso siguiente