⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

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.

Note

Si vous voyez une erreur permission denied liée au cache d'image, essayez de définir la variable d'environnement DOCKER_SCOUT_CACHE_DIR vers un répertoire accessible en écriture. Ou alternativement, désactivez complètement la mise en cache locale avec DOCKER_SCOUT_NO_CACHE=true.