docs/content/scout/integrations/ci/jenkins.md

1.7 KiB

description keywords title
How to integrate Docker Scout with Jenkins supply chain, security, ci, continuous integration, jenkins Integrate Docker Scout with Jenkins

You can add the following stage and steps definition to a Jenkinsfile to run Docker Scout as part of a Jenkins pipeline. The pipeline needs a DOCKER_HUB credential containing the username and password for authenticating to Docker Hub. It also needs an environment variable defined for the image and tag.

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'
            }
        }
    }
}

This installs Docker Scout, logs into Docker Hub, and then runs Docker Scout to generate a CVE report for an image and tag. It only shows critical or high-severity vulnerabilities.

Note

If you're seeing a permission denied error related to the image cache, try setting the DOCKER_SCOUT_CACHE_DIR environment variable to a writable directory. Or alternatively, disable local caching entirely with DOCKER_SCOUT_NO_CACHE=true.