No description
  • Go 61.4%
  • Dockerfile 19%
  • HCL 11.3%
  • Shell 6.3%
  • Makefile 2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-20 15:43:48 +02:00
.github ci: fix buildkit-image workflow 2026-08-20 15:12:54 +02:00
cmd Update to latest Syft 2024-12-10 11:19:19 +01:00
examples emit in-toto v1 SBOM statements 2026-07-03 16:52:54 +02:00
hack dockerfile: update go to 1.26 2026-05-28 12:28:54 +02:00
internal internal/scanner: scope output file cleanup 2026-07-08 13:05:19 +02:00
vendor vendor: update syft to v1.51.0 2026-08-13 10:27:44 +02:00
version chore: set license headers 2022-11-24 15:56:15 +01:00
.gitignore tests: add sanity tests for examples 2023-04-05 16:09:14 +01:00
docker-bake.hcl Windows scanner image variant 2026-07-08 13:48:31 +02:00
Dockerfile Windows scanner image variant 2026-07-08 13:48:31 +02:00
go.mod vendor: update syft to v1.51.0 2026-08-13 10:27:44 +02:00
go.sum vendor: update syft to v1.51.0 2026-08-13 10:27:44 +02:00
LICENSE chore: add apache license 2022-11-21 11:50:47 +00:00
Makefile ci: add checks for consistent vendoring 2023-06-20 11:47:04 +01:00
README.md tests: add sanity tests for examples 2023-04-05 16:09:14 +01:00

BuildKit Syft scanner

This repo packages the Syft scanner as a BuildKit SBOM generator to include scan results with the output of Docker builds.

The docker/buildkit-syft-scanner image implements the BuildKit SBOM scanner protocol defined here.

Usage

To scan an image during build with buildctl:

$ buildctl build ... \
    --output type=image,name=<image>,push=true \
    --opt attest:sbom=generator=docker/buildkit-syft-scanner

Development

buildkit-syft-scanner uses bake to build the project.

To setup a development environment by cloning the git repository:

$ git clone https://github.com/docker/buildkit-syft-scanner.git
$ cd buildkit-syft-scanner

It's recommended to setup an ephemeral local registry to push the development image to:

$ docker run -d -p 5000:5000 --rm --name registry registry:2

To build the development image, and push it to localhost:5000/buildkit-syft-scanner:dev:

$ make dev IMAGE=localhost:5000/buildkit-syft-scanner:dev 

To test the development image:

$ make examples IMAGE=localhost:5000/buildkit-syft-scanner:dev 

To scan an image during build with buildctl using the development image:

$ buildctl build ... \
    --output type=image,name=<image>,push=true \
    --opt attest:sbom=generator=localhost:5000/buildkit-syft-scanner:dev

Contributing

Want to contribute? Awesome!

buildkit-syft-scanner is mostly glue between BuildKit and Syft, so contributions will mostly likely belong in one of those projects. This project is intended to be as thin a compatibility layer as possible, so we have a strong preference for as little code here as possible.