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,highEsto 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.