Obtenir un aperçu rapide à partir d'un fichier SPDX
Dans cette étape, vous apprendrez à obtenir un aperçu rapide des composants logiciels d'une image Docker en générant et en examinant un fichier SPDX (Software Package Data Exchange). SPDX est une norme ouverte pour communiquer les informations sur la liste des composants logiciels (SBOM, Software Bill of Materials), y compris les composants, les licences et les droits d'auteur.
La génération d'un fichier SPDX pour une image Docker nécessite un outil capable d'analyser les couches de l'image et d'extraire les informations nécessaires. Un tel outil est syft
, un outil en ligne de commande pour générer des SBOM à partir d'images de conteneurs et de systèmes de fichiers.
Étant donné que syft
n'est pas préinstallé, nous allons le télécharger et l'installer. Nous allons télécharger la dernière version pour Linux.
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo bash -s -- -b /usr/local/bin
Cette commande télécharge le script d'installation de syft
et l'exécute avec sudo
pour installer le binaire dans /usr/local/bin
. Vous pourriez être invité à saisir votre mot de passe, mais l'utilisateur labex
a accès à sudo
sans mot de passe.
Après l'installation, vous pouvez vérifier que syft
est installé en vérifiant sa version :
syft version
Vous devriez voir les informations de version de syft
.
Maintenant, générons un fichier SPDX pour l'image my-recent-image
que nous avons construite à l'étape précédente. Nous allons envoyer le résultat dans un fichier nommé my-recent-image.spdx.json
dans le répertoire ~/project
.
syft my-recent-image -o spdx-json > ~/project/my-recent-image.spdx.json
Cette commande demande à syft
d'analyser l'image my-recent-image
et de sortir les résultats au format JSON SPDX, redirigeant la sortie vers le fichier spécifié. Ce processus peut prendre un moment en fonction de la taille de l'image.
Une fois la commande terminée, vous aurez un fichier JSON SPDX contenant un inventaire détaillé des paquets logiciels trouvés dans l'image. Vous pouvez afficher le contenu de ce fichier à l'aide d'un éditeur de texte comme nano
:
nano ~/project/my-recent-image.spdx.json
À l'intérieur du fichier, vous trouverez des informations sur l'image elle-même et une liste des paquets détectés, y compris leurs noms, versions et licences. Cela fournit un aperçu rapide des composants logiciels présents dans votre image sans avoir besoin d'exécuter le conteneur ou d'inspecter manuellement les couches individuelles.
Vous pouvez faire défiler le fichier pour voir les différentes sections et les informations qu'elles contiennent. Recherchez le tableau packages
, qui liste les composants logiciels détectés.
Appuyez sur Ctrl + X
pour quitter nano
.