Skip to content

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レポートを生成するワークフローが完了です。