Получить быстрый обзор из файла SPDX
На этом этапе вы узнаете, как получить быстрый обзор программных компонентов в Docker-образе, сгенерировав и изучив файл SPDX (Software Package Data Exchange). SPDX - это открытый стандарт для передачи информации о материальном составе программного обеспечения (SBOM), включая компоненты, лицензии и авторские права.
Для генерации файла SPDX для Docker-образа требуется инструмент, который может проанализировать слои образа и извлечь необходимую информацию. Одним из таких инструментов является syft
, командная строка для генерации SBOM из контейнерных образов и файловых систем.
Поскольку syft
не предустановлен, мы загрузим и установим его. Мы загрузим последний релиз для Linux.
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo bash -s -- -b /usr/local/bin
Эта команда загружает скрипт установки syft
и выполняет его с использованием sudo
для установки бинарного файла в /usr/local/bin
. Вам может потребоваться ввести пароль, но у пользователя labex
есть возможность использовать sudo
без ввода пароля.
После установки вы можете проверить, что syft
установлен, проверив его версию:
syft version
Вы должны увидеть информацию о версии syft
.
Теперь давайте сгенерируем файл SPDX для образа my-recent-image
, который мы собрали на предыдущем этапе. Мы выведем результат в файл с именем my-recent-image.spdx.json
в каталоге ~/project
.
syft my-recent-image -o spdx-json > ~/project/my-recent-image.spdx.json
Эта команда сообщает syft
проанализировать my-recent-image
и вывести результаты в формате SPDX JSON, перенаправив вывод в указанный файл. Этот процесс может занять некоторое время в зависимости от размера образа.
После завершения команды у вас будет файл SPDX JSON, содержащий подробный инвентарь программных пакетов, найденных в образе. Вы можете просмотреть содержимое этого файла с помощью текстового редактора, такого как nano
:
nano ~/project/my-recent-image.spdx.json
Внутри файла вы найдете информацию об образе и список обнаруженных пакетов, включая их имена, версии и лицензии. Это дает быстрый обзор программных компонентов, присутствующих в вашем образе, не требуя запускать контейнер или вручную проверять отдельные слои.
Вы можете прокрутить файл, чтобы увидеть разные разделы и информацию, которую они содержат. Найдите массив packages
, который перечисляет обнаруженные программные компоненты.
Нажмите Ctrl + X
, чтобы выйти из nano
.