將 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
完全停用本地快取。