Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo es la parte 3 de una serie de tutoriales de 5 partes sobre la contenedorización e implementación de una aplicación web de Python en Azure App Service. En la parte 2, ha compilado y ejecutado la imagen de contenedor localmente. En este artículo, compilará la misma aplicación web Python directamente en Azure Container Registry sin instalar Docker localmente. La creación de la imagen en Azure suele ser más rápida y sencilla que compilar localmente y, a continuación, insertarla en un registro. La creación de imágenes basada en la nube también elimina la necesidad de que Docker se ejecute en el entorno de desarrollo.
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. Una vez que la imagen de Docker esté en Azure Container Registry, puede implementarla en Azure App Service.
Prerequisites
Antes de comenzar, asegúrese de completar la parte 2 de esta serie de tutoriales, que abarca:
- Clonación del repositorio de ejemplo (Django o Flask).
- Creación de un grupo de recursos para recursos de Azure.
- Ejecutar la aplicación en contenedor localmente para comprobar que funciona.
También necesita lo siguiente:
- Una suscripción de Azure activa. Si no tiene una, cree una cuenta gratuita.
- CLI de Azure instalado localmente (para los pasos de CLI de Azure) o acceso a Azure Cloud Shell.
- Visual Studio Code con la extensión de Docker instalada (para los pasos de VS Code).
Importante
El Dockerfile de ejemplo usa python:3.8-slim como imagen base.
Python 3.8 alcanzó el final del ciclo de vida en octubre de 2024 y ya no recibe actualizaciones de seguridad. Actualice el Dockerfile para usar python:3.12-slim o python:3.13-slim para implementaciones de producción.
En este diagrama de servicio se resaltan los componentes descritos en este artículo.
Creación de una instancia de Azure Container Registry
Si ya tiene una Azure Container Registry, omita este paso y continúe con el paso siguiente. De lo contrario, cree un nuevo Azure Container Registry mediante el CLI de Azure.
Puede ejecutar comandos CLI de Azure en el Azure Cloud Shell o en el entorno de desarrollo local con el CLI de Azure instalado.
Nota
Use los mismos nombres que en la parte 2 de esta serie de tutoriales.
Cree un Azure registro de contenedor mediante 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. # 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 StandardEn 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.Ejemplo:
{ "loginServer": "msdocscontainerregistryname.azurecr.io", "name": "msdocscontainerregistryname", ... }Si usa el 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_NAMEEl
-nparámetro acepta el nombre corto del Registro (por ejemplo,msdocscontainerregistryname) o el nombre completo del Registro (msdocscontainerregistryname.azurecr.io). El comando autentica Docker con Azure Container Registry mediante las credenciales de CLI de Azure.Salida esperada:
Login SucceededNota
Si usa Azure Cloud Shell, no es necesario ejecutar el
az acr logincomando porque la sesión de Cloud Shell controla automáticamente la autenticación.
Creación de una imagen en Azure Container Registry
Puede generar la imagen de contenedor directamente en Azure a través de varios enfoques:
- El Azure Cloud Shell le permite construir la imagen completamente en la nube, independientemente del entorno local.
- Como alternativa, puede usar VS Code o el CLI de Azure para crear la imagen en Azure desde la configuración local, sin necesidad de que Docker se ejecute localmente.
Puede ejecutar comandos CLI de Azure en el entorno de desarrollo local mediante el CLI de Azure instalado o en Azure Cloud Shell.
En la consola, vaya a la carpeta raíz del repositorio clonado de la parte 2 de esta serie de tutoriales.
Compile la imagen de contenedor mediante el comando az acr build .
Desarrollo local:
az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .Azure Cloud Shell:
Si usa Azure Cloud Shell, especifique la dirección URL del repositorio de GitHub en lugar de la ruta de acceso local (
.):# 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.gitEl argumento final (
.o la dirección URL de Git) es el contexto de compilación de Docker, el directorio que contiene los archivos dockerfile y de aplicación que Docker usa para compilar la imagen.Confirme que la imagen de contenedor se creó mediante el comando az acr repository list .
az acr repository list -n $REGISTRY_NAMESalida esperada:
[ "msdocspythoncontainerwebapp" ]