Compartir vía


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

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

  1. 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.

    Botón Azure Cloud Shell

  2. 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
    
  3. 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 comando az 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

  1. En el proyecto de Azure DevOps, seleccione Canalizaciones>Nueva canalización o Crear canalización si esta canalización es la primera del proyecto.

    Captura de pantalla que muestra la pantalla Crear una nueva canalización

  2. Seleccione GitHub como la ubicación del código fuente.

  3. En la pantalla Seleccionar un repositorio, seleccione el repositorio de códigos de ejemplo.

  4. En la pantalla Configurar la canalización, seleccione la canalización Docker: compilar e insertar una imagen en Azure Container Registry.

    Captura de pantalla que muestra la selección de la canalización para compilar e insertar una imagen de Docker en Azure Container Registry.

  5. En la pantalla Docker, seleccione su suscripción de Azure y, a continuación, seleccione Continuar.

  6. Seleccione el registro de contenedor en el menú desplegable, proporcione un Nombre de imagen y, a continuación, seleccione Validar y configurar.

    Captura de pantalla que muestra cómo configurar una canalización de Docker para compilar y publicar una imagen en Azure Container Registry.

    Azure Pipelines genera un archivo azure-pipelines.yml que define la canalización.

  7. Revise el código en azure-pipelines.yml y, a continuación, seleccione Guardar y ejecutar.

    Captura de pantalla del botón Guardar y ejecutar en una nueva canalización de YAML.

  8. 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.

  9. 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.

    Captura de pantalla que muestra el vínculo Compilar en la página de ejecución del trabajo.

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