Compartir comentarios
Las respuestas se generan en base a la documentación.

Integrar Docker Scout con Microsoft Azure DevOps Pipelines


Los siguientes ejemplos se ejecutan en un repositorio conectado a Azure DevOps que contiene la definición y el contenido de una imagen de Docker. Activado por un commit en la rama main, el pipeline construye la imagen y utiliza Docker Scout para crear un informe de CVEs.

Primero, configura el resto del flujo de trabajo y define las variables disponibles para todos los pasos del pipeline. Añade lo siguiente a un archivo azure-pipelines.yml:

trigger:
  - main

resources:
  - repo: self

variables:
  tag: "$(Build.BuildId)"
  image: "vonwig/nodejs-service"

Esto configura el flujo de trabajo para utilizar una imagen de contenedor particular para la aplicación y etiqueta cada nueva construcción de imagen con el ID de la construcción.

Añade lo siguiente al archivo YAML:

stages:
  - stage: Build
    displayName: Build image
    jobs:
      - job: Build
        displayName: Build
        pool:
          vmImage: ubuntu-latest
        steps:
          - task: Docker@2
            displayName: Build an image
            inputs:
              command: build
              dockerfile: "$(Build.SourcesDirectory)/Dockerfile"
              repository: $(image)
              tags: |
                $(tag)
          - task: CmdLine@2
            displayName: Find CVEs on image
            inputs:
              script: |
                # Instalar la CLI de Docker Scout
                curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s --
                # Iniciar sesión en Docker Hub requerido para la CLI de Docker Scout
                echo $(DOCKER_HUB_PAT) | docker login -u $(DOCKER_HUB_USER) --password-stdin
                # Obtener un informe de CVEs para la imagen construida y fallar el pipeline cuando se detecten CVEs críticas o altas
                docker scout cves $(image):$(tag) --exit-code --only-severity critical,high

Esto crea el flujo mencionado anteriormente. Construye y etiqueta la imagen utilizando el Dockerfile descargado, descarga la CLI de Docker Scout y luego ejecuta el comando cves sobre la nueva etiqueta para generar un informe de CVEs. Únicamente muestra vulnerabilidades de gravedad crítica o alta.