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