Docker Scout ã Circle CI ãšé£æºãã
以äžã®äŸã¯ãCircleCIã§ããªã¬ãŒããããšãã«å®è¡ãããŸããããªã¬ãŒããããšãdocker/scout-demo-service:latest
ã€ã¡ãŒãžãšã¿ã°ããã§ãã¯ã¢ãŠãããDocker Scout ã䜿çšããŠCVEã¬ããŒããäœæããŸãã
.circleci/config.yml
ãã¡ã€ã«ã«ä»¥äžãè¿œå ããŸãã
æåã«ãã¯ãŒã¯ãããŒã®æ®ããèšå®ããŸããYAMLãã¡ã€ã«ã«æ¬¡ã®å 容ãè¿œå ããŠãã ããã
version: 2.1
jobs:
build:
docker:
- image: cimg/base:stable
environment:
IMAGE_TAG: docker/scout-demo-service:latest
ããã«ãããã¯ãŒã¯ãããŒã䜿çšããã³ã³ããã€ã¡ãŒãžãšãã€ã¡ãŒãžã®ããã®ç°å¢å€æ°ãå®çŸ©ãããŸãã
次ã«ãã¯ãŒã¯ãããŒã®æé ãå®çŸ©ããããã«ã以äžã®å 容ãYAMLãã¡ã€ã«ã«è¿œå ããŸãã
steps:
# ãªããžããªãã¡ã€ã«ããã§ãã¯ã¢ãŠã
- checkout
# `docker`ã³ãã³ããå®è¡ããããã®å¥ã®Dockerç°å¢ãã»ããã¢ãã
- setup_remote_docker:
version: 20.10.24
# Docker Scoutãã€ã³ã¹ããŒã«ããDocker Hubã«ãã°ã€ã³
- run:
name: Docker Scoutã®ã€ã³ã¹ããŒã«
command: |
env
curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s -- -b /home/circleci/bin
echo $DOCKER_HUB_PAT | docker login -u $DOCKER_HUB_USER --password-stdin
# Dockerã€ã¡ãŒãžããã«ã
- run:
name: Dockerã€ã¡ãŒãžã®ãã«ã
command: docker build -t $IMAGE_TAG .
# Docker Scoutãå®è¡
- run:
name: CVEã®ã¹ãã£ã³
command: |
docker-scout cves $IMAGE_TAG --exit-code --only-severity critical,high
ããã«ããããªããžããªãã¡ã€ã«ããã§ãã¯ã¢ãŠããããã³ãã³ããå®è¡ããããã®å¥ã® Docker ç°å¢ãã»ããã¢ãããããŸãã
次ã«ãDocker Scout ãã€ã³ã¹ããŒã«ããDocker Hub ã«ãã°ã€ã³ã㊠Docker ã€ã¡ãŒãžããã«ãããDocker Scout ãå®è¡ã㊠CVE ã¬ããŒããçæããŸãããã®ã¬ããŒãã«ã¯ãé倧ãŸãã¯é«ãªã¹ã¯ã®è匱æ§ã®ã¿ã衚瀺ãããŸãã
æåŸã«ãã¯ãŒã¯ãããŒã®ååãšãžã§ããè¿œå ããŸãã
workflows:
build-docker-image:
jobs:
- build
ããã§ãCircleCIã§Docker Scoutã䜿çšããŠCVEã¬ããŒããçæããã¯ãŒã¯ãããŒãå®äºã§ãã