Intégration d'environnement générique avec CLI
Table des matières
Vous pouvez créer une intégration d'environnement générique en exécutant le
client CLI Docker Scout dans vos workflows CI. Le client CLI est disponible comme binaire sur
GitHub et comme image de conteneur sur Docker Hub. Utilisez le client pour invoquer la
commande docker scout environment
pour assigner vos images aux environnements.
Pour plus d'informations sur comment utiliser la commande docker scout environment
,
consultez la
référence CLI.
Exemples
Avant de commencer, définissez les variables d'environnement suivantes dans votre système CI :
DOCKER_SCOUT_HUB_USER
: votre nom d'utilisateur Docker HubDOCKER_SCOUT_HUB_PASSWORD
: votre jeton d'accès personnel Docker Hub
Assurez-vous que les variables sont accessibles à votre projet.
version: 2.1
jobs:
record_environment:
machine:
image: ubuntu-2204:current
image: namespace/repo
steps:
- run: |
if [[ -z "$CIRCLE_TAG" ]]; then
tag="$CIRCLE_TAG"
echo "Exécution du tag '$CIRCLE_TAG'"
else
tag="$CIRCLE_BRANCH"
echo "Exécution sur la branche '$CI_COMMIT_BRANCH'"
fi
echo "tag = $tag"
- run: docker run -it \
-e DOCKER_SCOUT_HUB_USER=$DOCKER_SCOUT_HUB_USER \
-e DOCKER_SCOUT_HUB_PASSWORD=$DOCKER_SCOUT_HUB_PASSWORD \
docker/scout-cli:1.0.2 environment \
--org "<MY_DOCKER_ORG>" \
"<ENVIRONMENT>" ${image}:${tag}
L'exemple suivant utilise l'exécuteur Docker.
variables:
image: namespace/repo
record_environment:
image: docker/scout-cli:1.0.2
script:
- |
if [[ -z "$CI_COMMIT_TAG" ]]; then
tag="latest"
echo "Exécution du tag '$CI_COMMIT_TAG'"
else
tag="$CI_COMMIT_REF_SLUG"
echo "Exécution sur la branche '$CI_COMMIT_BRANCH'"
fi
echo "tag = $tag"
- environment --org <MY_DOCKER_ORG> "PRODUCTION" ${image}:${tag}
trigger:
- main
resources:
- repo: self
variables:
tag: "$(Build.BuildId)"
image: "namespace/repo"
stages:
- stage: Docker Scout
displayName: Intégration d'environnement Docker Scout
jobs:
- job: Record
displayName: Enregistrer l'environnement
pool:
vmImage: ubuntu-latest
steps:
- task: Docker@2
- script: docker run -it \
-e DOCKER_SCOUT_HUB_USER=$DOCKER_SCOUT_HUB_USER \
-e DOCKER_SCOUT_HUB_PASSWORD=$DOCKER_SCOUT_HUB_PASSWORD \
docker/scout-cli:1.0.2 environment \
--org "<MY_DOCKER_ORG>" \
"<ENVIRONMENT>" $(image):$(tag)
stage('Analyser l\'image') {
steps {
// Installer Docker Scout
sh 'curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s -- -b /usr/local/bin'
// Se connecter à Docker Hub
sh 'echo $DOCKER_SCOUT_HUB_PASSWORD | docker login -u $DOCKER_SCOUT_HUB_USER --password-stdin'
// Analyser et échouer sur les vulnérabilités critiques ou élevées
sh 'docker-scout environment --org "<MY_DOCKER_ORG>" "<ENVIRONMENT>" $IMAGE_TAG
}
}