將 Docker Scout 整合至 Jenkins
您可以將下列 stage 和 steps 定義加入 Jenkinsfile,以便在 Jenkins pipeline 中執行 Docker Scout。該 pipeline 需要一個包含 Docker Hub 使用者名稱與密碼的 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 報告。它僅會顯示嚴重 (critical) 或高風險 (high-severity) 的漏洞。
注意如果您遇到與映像檔快取相關的
permission denied錯誤,請嘗試將DOCKER_SCOUT_CACHE_DIR環境變數設定為一個可寫入的目錄。或者,也可以透過DOCKER_SCOUT_NO_CACHE=true完全停用本機快取。