Obtener una visión general rápida a partir de un archivo SPDX
En este paso, aprenderá cómo obtener una visión general rápida de los componentes de software dentro de una imagen de Docker generando y examinando un archivo SPDX (Software Package Data Exchange, Intercambio de Datos de Paquetes de Software). SPDX es un estándar abierto para comunicar información sobre la lista de materiales de software (SBOM, Software Bill of Materials), incluyendo componentes, licencias y derechos de autor.
Generar un archivo SPDX para una imagen de Docker requiere una herramienta que pueda analizar las capas de la imagen y extraer la información necesaria. Una de esas herramientas es syft
, una herramienta de línea de comandos para generar SBOMs a partir de imágenes de contenedores y sistemas de archivos.
Dado que syft
no está preinstalado, lo descargaremos e instalaremos. Descargaremos la última versión para Linux.
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo bash -s -- -b /usr/local/bin
Este comando descarga el script de instalación de syft
y lo ejecuta con sudo
para instalar el binario en /usr/local/bin
. Puede que se le pida su contraseña, pero el usuario labex
tiene permisos sudo
sin contraseña.
Después de la instalación, puede verificar que syft
está instalado comprobando su versión:
syft version
Debería ver la información de la versión de syft
.
Ahora, generemos un archivo SPDX para la imagen my-recent-image
que construimos en el paso anterior. Enviaremos el resultado a un archivo llamado my-recent-image.spdx.json
en el directorio ~/project
.
syft my-recent-image -o spdx-json > ~/project/my-recent-image.spdx.json
Este comando le dice a syft
que analice la imagen my-recent-image
y que envíe los resultados en formato JSON SPDX, redirigiendo la salida al archivo especificado. Este proceso puede tardar un momento dependiendo del tamaño de la imagen.
Una vez que se complete el comando, tendrá un archivo JSON SPDX que contiene un inventario detallado de los paquetes de software encontrados dentro de la imagen. Puede ver el contenido de este archivo utilizando un editor de texto como nano
:
nano ~/project/my-recent-image.spdx.json
Dentro del archivo, encontrará información sobre la imagen en sí y una lista de paquetes detectados, incluyendo sus nombres, versiones y licencias. Esto proporciona una visión general rápida de los componentes de software presentes en su imagen sin necesidad de ejecutar el contenedor o inspeccionar manualmente las capas individuales.
Puede desplazarse por el archivo para ver las diferentes secciones y la información que contienen. Busque la matriz packages
, que enumera los componentes de software detectados.
Presione Ctrl + X
para salir de nano
.