Intégrer Docker Scout avec Jenkins
Vous pouvez ajouter la définition d'étapes et de phases suivante à un Jenkinsfile
pour exécuter
Docker Scout dans le cadre d'un pipeline Jenkins. Le pipeline a besoin d'une
credential DOCKER_HUB
contenant le nom d'utilisateur et le mot de passe pour s'authentifier auprès de Docker
Hub. Il a aussi besoin d'une variable d'environnement définie pour l'image et le tag.
pipeline {
agent {
// Détails de l'agent
}
environment {
DOCKER_HUB = credentials('jenkins-docker-hub-credentials')
IMAGE_TAG = 'myorg/scout-demo-service:latest'
}
stages {
stage('Analyser l\'image') {
steps {
// Installer Docker Scout
sh 'curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s -- -b /usr/local/bin'
// Se connecter à Docker Hub
sh 'echo $DOCKER_HUB_PSW | docker login -u $DOCKER_HUB_USR --password-stdin'
// Analyser et échouer sur les vulnérabilités critiques ou élevées
sh 'docker-scout cves $IMAGE_TAG --exit-code --only-severity critical,high'
}
}
}
}
Ceci installe Docker Scout, se connecte à Docker Hub, puis exécute Docker Scout pour générer un rapport CVE pour une image et un tag. Il ne montre que les vulnérabilités critiques ou de gravité élevée.
NoteSi vous voyez une erreur
permission denied
liée au cache d'image, essayez de définir la variable d'environnementDOCKER_SCOUT_CACHE_DIR
vers un répertoire accessible en écriture. Ou alternativement, désactivez complètement la mise en cache locale avecDOCKER_SCOUT_NO_CACHE=true
.