將 Docker Scout 與 Jenkins 整合


您可以將以下階段和步驟定義新增至 `Jenkinsfile`,以便將 Docker Scout 作為 Jenkins 流程的一部分來運行。該流程需要一個包含用於向 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` 完全停用本機快取。