將 Docker Scout 與 Jenkins 整合


您可以將以下階段和步驟定義新增到 Jenkinsfile,以便在 Jenkins 管道中執行 Docker Scout。該管道需要一個 DOCKER_HUB 憑證,其中包含用於向 Docker Hub 進行身份驗證的使用者名稱和密碼。它還需要為映象和標籤定義一個環境變數。

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

這將安裝 Docker Scout,登入 Docker Hub,然後執行 Docker Scout 以生成映象和標籤的 CVE 報告。它只顯示關鍵或高嚴重性漏洞。

注意

如果遇到與映象快取相關的 permission denied 錯誤,請嘗試將 DOCKER_SCOUT_CACHE_DIR 環境變數設定為可寫目錄。或者,使用 DOCKER_SCOUT_NO_CACHE=true 完全停用本地快取。