Integrar Docker Scout con Jenkins
Puedes añadir la siguiente definición de etapa (stage) y pasos a un Jenkinsfile para ejecutar
Docker Scout como parte de un pipeline de Jenkins. El pipeline necesita una credencial DOCKER_HUB
que contenga el usuario y la contraseña para autenticarse en Docker Hub.
También necesita una variable de entorno definida para la imagen y la etiqueta.
pipeline {
agent {
// Agent details
}
environment {
DOCKER_HUB = credentials('jenkins-docker-hub-credentials')
IMAGE_TAG = 'myorg/scout-demo-service:latest'
}
stages {
stage('Analyze image') {
steps {
// Install Docker Scout
sh 'curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s -- -b /usr/local/bin'
// Log into Docker Hub
sh 'echo $DOCKER_HUB_PSW | docker login -u $DOCKER_HUB_USR --password-stdin'
// Analyze and fail on critical or high vulnerabilities
sh 'docker scout cves $IMAGE_TAG --exit-code --only-severity critical,high'
}
}
}
}Esto instala Docker Scout, inicia sesión en Docker Hub y luego ejecuta Docker Scout para generar un informe de CVEs para una imagen y etiqueta determinadas. Solo muestra vulnerabilidades de gravedad crítica o alta.
NoteSi experimentas un error de
permission denied(permiso denegado) relacionado con la caché de imágenes, intenta configurar la variable de entornoDOCKER_SCOUT_CACHE_DIRen un directorio en el que se pueda escribir. O, de forma alternativa, desactiva la caché local por completo conDOCKER_SCOUT_NO_CACHE=true.