Use YAML en Docker para compilar e insertar imágenes de Docker en Azure Container Registry.
Azure DevOps Services
En este tutorial se muestra cómo usar una canalización basada en una plantilla de Docker de Azure Pipelines para compilar una aplicación contenedorizada e insertarla en Azure Container Registry. La plantilla configura una canalización YAML de integración continua donde los cambios de repositorio de código nuevos desencadenan la canalización para compilar y publicar imágenes de Docker actualizadas en el registro.
La canalización de plantillas de contenedor de Docker usa agentes hospedados por Microsoft y crea una conexión de servicio basada en entidad de servicio a Azure Container Registry. Para una canalización que realice un proceso similar mediante agentes autohospedados y una conexión de servicio que cree usted mismo, consulte Compilación e inserción de imágenes de Docker en Azure Container Registry.
Requisitos previos
Una cuenta de Azure en la que tiene permiso para crear y configurar recursos. Si aún no tiene ninguna cuenta de Azure, regístrese para obtener una cuenta gratuita.
Una organización y un proyecto de Azure DevOps donde tiene permiso para crear canalizaciones e implementar aplicaciones. Para crear una organización o un proyecto, consulte Creación de una organización o Creación de un proyecto en Azure DevOps.
Una cuenta de GitHub.
Importante
Cuando use GitHub en los procedimientos siguientes, es posible que se le pida que cree una conexión de servicio de GitHub; inicie sesión en GitHub, autentíquese en organizaciones de GitHub, instale Azure Pipelines o autorice Azure Pipelines. Siga las instrucciones que aparecen en pantalla para completar el proceso. Para más información, consulte Acceso a repositorios de GitHub.
Obtención de la aplicación de ejemplo
En GitHub, bifurque o clone el repositorio Docker de muestra y aplicación de Node.JS en Kubernetes.
Creación de un Registro de contenedor
Desde Azure Portal inicie sesión en Azure Cloud Shell seleccionando el icono en la barra de menús superior. Asegúrese de usar el shell de Bash.
En Cloud Shell, ejecute los siguientes comandos para crear un grupo de recursos y un registro de contenedor de Azure mediante la CLI de Azure. El nombre del Container Registry debe estar en minúsculas.
az group create --name myapp-rg --location eastus az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
Para implementar una imagen de Docker en Azure Container Registry, debe habilitar la cuenta de usuario administrador para el registro, que está deshabilitada de forma predeterminada. Para habilitar el usuario administrador para el registro, use el parámetro
--admin-enabled
con el comandoaz acr update
. Para más información e instrucciones de instalación, consulte Cuenta de administrador.az acr update -n <acrName> --admin-enabled true
Como alternativa, puede usar la interfaz de usuario de Azure Portal para crear el registro de contenedor de Azure. Para obtener instrucciones, consulte Creación de un registro de contenedor. Habilite la cuenta de administrador en Propiedades después de crear el registro.
Creación de la canalización
En el proyecto de Azure DevOps, seleccione Canalizaciones>Nueva canalización o Crear canalización si esta canalización es la primera del proyecto.
Seleccione GitHub como la ubicación del código fuente.
En la pantalla Seleccionar un repositorio, seleccione el repositorio de códigos de ejemplo.
En la pantalla Configurar la canalización, seleccione la canalización Docker: compilar e insertar una imagen en Azure Container Registry.
En la pantalla Docker, seleccione su suscripción de Azure y, a continuación, seleccione Continuar.
Seleccione el registro de contenedor en el menú desplegable, proporcione un Nombre de imagen y, a continuación, seleccione Validar y configurar.
Azure Pipelines genera un archivo azure-pipelines.yml que define la canalización.
Revise el código en azure-pipelines.yml y, a continuación, seleccione Guardar y ejecutar.
Opcionalmente, edite el mensaje Confirmar y proporcione una descripción. A continuación, seleccione Guardar y ejecutar de nuevo para confirmar el archivo azure-pipelines.yml en el repositorio e iniciar una compilación.
En la página de ejecución de compilación se muestran los detalles y el progreso de la compilación. Para ver la canalización en acción, seleccione Compilar en Trabajos.
Detalles de canalización
La canalización se genera a partir de la plantilla de contenedor de Docker. La fase de compilación usa la tarea de Docker v2 para compilar e insertar la imagen de Docker en el registro de contenedor.
La tarea de Docker usa una conexión de servicio de registro de Docker con autenticación de entidad de servicio para habilitar la canalización e insertar imágenes en el registro de contenedor. La plantilla de contenedor de Docker genera esta conexión de servicio cuando crea la canalización.
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
Limpieza de recursos
Cuando termine de usar los recursos que creó en este tutorial, puede eliminarlos para evitar incurrir en más gastos. Ejecute el comando Cloud Shell siguiente para eliminar el grupo de recursos y todos los recursos que incluye.
az group delete --name myapp-rg