Docker Scout를 Jenkins와 통합하기
Docker Scout를 Jenkins와 통합하기
Jenkins 파이프라인의 일부로 Docker Scout를 실행하려면 Jenkinsfile에 다음 stage와 steps 정의를 추가할 수 있어요. 파이프라인은 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 {
// Docker Scout 설치 (Install Docker Scout)
sh 'curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s -- -b /usr/local/bin'
// Docker Hub 로그인 (Log into Docker Hub)
sh 'echo $DOCKER_HUB_PSW | docker login -u $DOCKER_HUB_USR --password-stdin'
// 이미지 분석하고 critical/high 취약점에서 실패 (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 심각도 취약점만 보여 줘요.
[!NOTE]
이미지 캐시와 관련된
permission denied오류가 보이면DOCKER_SCOUT_CACHE_DIR환경 변수를 쓰기 가능한 디렉토리로 설정해 보세요. 또는DOCKER_SCOUT_NO_CACHE=true로 로컬 캐싱을 완전히 비활성화할 수 있어요.