⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Intégrer Docker Scout avec les Pipelines Microsoft Azure DevOps


L'exemple suivant s'exécute dans un dépôt connecté à Azure DevOps contenant la définition et le contenu d'une image Docker. Déclenché par un commit sur la branche principale, le pipeline construit l'image et utilise Docker Scout pour créer un rapport CVE.

D'abord, configurez le reste du workflow et configurez les variables disponibles pour toutes les étapes du pipeline. Ajoutez ce qui suit à un fichier azure-pipelines.yml :

trigger:
  - main

resources:
  - repo: self

variables:
  tag: "$(Build.BuildId)"
  image: "vonwig/nodejs-service"

Ceci configure le workflow pour utiliser une image de conteneur particulière pour l'application et taguer chaque nouvelle construction d'image avec l'ID de construction.

Ajoutez ce qui suit au fichier YAML :

stages:
  - stage: Build
    displayName: Construire l'image
    jobs:
      - job: Build
        displayName: Construire
        pool:
          vmImage: ubuntu-latest
        steps:
          - task: Docker@2
            displayName: Construire une image
            inputs:
              command: build
              dockerfile: "$(Build.SourcesDirectory)/Dockerfile"
              repository: $(image)
              tags: |
                $(tag)
          - task: CmdLine@2
            displayName: Trouver les CVE sur l'image
            inputs:
              script: |
                # Installer le CLI Docker Scout
                curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s --
                # Connexion à Docker Hub requise pour le CLI Docker Scout
                echo $(DOCKER_HUB_PAT) | docker login -u $(DOCKER_HUB_USER) --password-stdin
                # Obtenir un rapport CVE pour l'image construite et faire échouer le pipeline quand des CVE critiques ou élevés sont détectés
                docker scout cves $(image):$(tag) --exit-code --only-severity critical,high

Ceci crée le flux mentionné précédemment. Il construit et tague l'image en utilisant le Dockerfile extrait, télécharge le CLI Docker Scout, puis exécute la commande cves contre le nouveau tag pour générer un rapport CVE. Il ne montre que les vulnérabilités de gravité critique ou élevée.