Docker Scout ã Jenkins ã«çµ±åãã
以äžã®ã¹ããŒãžãšã¹ãããå®çŸ©ã Jenkinsfile
ã«è¿œå ããããšã§ãJenkins ãã€ãã©ã€ã³ã®äžéšãšã㊠Docker Scout ãå®è¡ããããšãã§ããŸãããã€ãã©ã€ã³ã«ã¯ãDocker Hub ã«èªèšŒããããã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããå«ã DOCKER_HUB
ã¯ã¬ãã³ã·ã£ã«ãå¿
èŠã§ãããŸããã€ã¡ãŒãžãšã¿ã°ã®ããã®ç°å¢å€æ°ãå®çŸ©ããå¿
èŠããããŸãã
pipeline {
agent {
// ãšãŒãžã§ã³ãã®è©³çŽ°
}
environment {
DOCKER_HUB = credentials('jenkins-docker-hub-credentials')
IMAGE_TAG = 'myorg/scout-demo-service:latest'
}
stages {
stage('Analyze image') {
steps {
// Docker Scoutãã€ã³ã¹ããŒã«
sh 'curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s -- -b /usr/local/bin'
// Docker Hubã«ãã°ã€ã³
sh 'echo $DOCKER_HUB_PSW | docker login -u $DOCKER_HUB_USR --password-stdin'
// é倧ãŸãã¯é«åªå
床ã®è匱æ§ã«åºã¥ããŠåæãã倱æããã
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
ãèšå®ããããšãã§ããŸãã