Compartir a través de


Compilación de una aplicación web de Python en contenedor en Azure

En esta parte de la serie de tutoriales, aprenderá a compilar una aplicación web de Python en contenedor directamente en Azure Container Registry sin instalar Docker localmente. La creación de la imagen de Docker en Azure suele ser más rápida y sencilla que crear la imagen localmente y, a continuación, insertarla en Azure Container Registry. Además, la creación de imágenes basada en la nube elimina la necesidad de que Docker se ejecute en el entorno de desarrollo.

App Service le permite ejecutar aplicaciones web en contenedores e implementarlas a través de las funcionalidades de integración continua e implementación continua (CI/CD) de Docker Hub, Azure Container Registry y Visual Studio Team Services. Este artículo es la parte 3 de una serie de tutoriales de 5 partes sobre cómo incluir e implementar una aplicación web de Python en Azure App Service. En esta parte del tutorial, aprenderá a compilar la aplicación web de Python en contenedores en Azure.

Azure App Service le permite implementar y ejecutar aplicaciones web en contenedores mediante canalizaciones de CI/CD desde plataformas como Docker Hub, Azure Container Registry y Azure DevOps. Este artículo es la parte 3 de una serie de tutoriales de 5 partes.

En la parte 2 de esta serie de tutoriales , ha compilado y ejecutado la imagen de contenedor localmente. En cambio, en esta parte del tutorial, compilará (contenedorizará) la misma aplicación web de Python directamente en una imagen de Docker 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 Azure App Service.

En este diagrama de servicio se resaltan los componentes descritos en este artículo.

Una captura de pantalla de los servicios utilizados en el Tutorial - Containerized Python App on Azure con la ruta integrada en la nube resaltada.

Creación de una instancia de Azure Container Registry

Si tiene una instancia de Azure Container Registry existente que desea usar, omita este paso siguiente y continúe con el paso siguiente. De lo contrario, cree un nuevo registro de contenedor de Azure mediante la CLI de Azure.

Los comandos de la CLI de Azure se pueden ejecutar en Azure Cloud Shell o en el entorno de desarrollo local con la CLI de Azure instalada.

Nota

Use los mismos nombres que en la parte 2 de esta serie de tutoriales.

  1. Cree un registro de contenedor de Azure con el comando 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
    

    En la salida JSON del comando, busque el valor loginServer. Este valor representa el nombre completo del Registro (todo en minúsculas) y contiene el nombre del Registro.

  2. Si usa la CLI de Azure en el equipo local, ejecute el comando az acr login para iniciar sesión en el registro de contenedor.

    az acr login -n $REGISTRY_NAME
    

    El comando agrega "azurecr.io" al nombre para crear el nombre de registro completamente calificado. Si se ejecuta correctamente, verá el mensaje "Login Succeeded".

    Nota

    En Azure Cloud Shell, el az acr login command no es necesario, ya que la autenticación se controla automáticamente a través de la sesión de Cloud Shell. Sin embargo, si encuentra problemas de autenticación, puede seguir utilizándolo.

Creación de una imagen en Azure Container Registry

Puede generar la imagen de contenedor directamente en Azure a través de varios enfoques:

  • Azure Cloud Shell permite construir la imagen completamente en la nube, independientemente del entorno local.
  • Como alternativa, puede usar VS Code o la CLI de Azure para crearlo en Azure a partir de la configuración local, sin necesidad de que Docker se ejecute localmente.

Los comandos de la CLI de Azure se pueden ejecutar en el entorno de desarrollo local con la CLI de Azure instalada o en Azure Cloud Shell.

  1. En la consola, vaya a la carpeta raíz del repositorio clonado de la parte 2 de esta serie de tutoriales.

  2. Compile la imagen de contenedor mediante el comando 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
    

    El último argumento del comando es la ruta completa al repositorio. Cuando se ejecuta en Azure Cloud Shell, use https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git para la aplicación de ejemplo de Django y https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git para la aplicación de ejemplo de Flask.

  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