1{
2 buildGoModule,
3 fetchFromGitHub,
4 docker,
5 lib,
6}:
7
8buildGoModule rec {
9 pname = "docker-sbom";
10 version = "0.6.1";
11
12 src = fetchFromGitHub {
13 owner = "docker";
14 repo = "sbom-cli-plugin";
15 rev = "tags/v${version}";
16 hash = "sha256-i3gIogHb0oW/VDuZUo6LGBmvqs/XfMXjpvTTYeGCK7Q=";
17 };
18
19 patches = [
20 # Disable tests that require a docker daemon to be running
21 # in the sandbox
22 ./sbom-disable-tests.patch
23 ];
24
25 vendorHash = "sha256-XPPVAdY2NaasZ9bkf24VWWk3X5pjnryvsErYIWkeekc=";
26
27 nativeBuildInputs = [ docker ];
28
29 installPhase = ''
30 runHook preInstall
31 install -D $GOPATH/bin/sbom-cli-plugin $out/libexec/docker/cli-plugins/docker-sbom
32
33 mkdir -p $out/bin
34 ln -s $out/libexec/docker/cli-plugins/docker-sbom $out/bin/docker-sbom
35 runHook postInstall
36 '';
37
38 meta = with lib; {
39 description = "Plugin for Docker CLI to support SBOM creation using Syft";
40 mainProgram = "docker-sbom";
41 homepage = "https://github.com/docker/sbom-cli-plugin";
42 license = licenses.asl20;
43 maintainers = with maintainers; [ raboof ];
44 };
45}