Skip to content

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 を設定することもできます。