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 deniedliée au cache d'image, essayez de définir la variable d'environnementDOCKER_SCOUT_CACHE_DIRvers un répertoire accessible en écriture. Ou alternativement, désactivez complètement la mise en cache locale avecDOCKER_SCOUT_NO_CACHE=true.