Dagger
Search

syft

it into a release container (where goreleaser drives it), and a standalone
Sbom that scans a directory. It pins the syft version in one place.

Installation

dagger install github.com/MacroPower/x/toolchains/syft@3f4ef26289cf6c0690d4ce596cd8832b729b8ad4

Entrypoint

Return Type
Syft !
Arguments
NameTypeDefault ValueDescription
imageString -syft container image.
Example
dagger -m github.com/MacroPower/x/toolchains/syft@3f4ef26289cf6c0690d4ce596cd8832b729b8ad4 call \
func (m *MyModule) Example() *dagger.Syft  {
	return dag.
			Syft()
}
@function
def example() -> dagger.Syft:
	return (
		dag.syft()
	)
@func()
example(): Syft {
	return dag
		.syft()
}

Types

Syft 🔗

Syft provides the syft SBOM generator. Create instances with [New].

image() 🔗

syft container image reference.

Return Type
String !
Example
dagger -m github.com/MacroPower/x/toolchains/syft@3f4ef26289cf6c0690d4ce596cd8832b729b8ad4 call \
 image
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Syft().
			Image(ctx)
}
@function
async def example() -> str:
	return await (
		dag.syft()
		.image()
	)
@func()
async example(): Promise<string> {
	return dag
		.syft()
		.image()
}

binary() 🔗

Binary returns the syft executable, extracted from the official image so it can be layered onto another container (e.g. a goreleaser release base).

Return Type
File !
Example
dagger -m github.com/MacroPower/x/toolchains/syft@3f4ef26289cf6c0690d4ce596cd8832b729b8ad4 call \
 binary
func (m *MyModule) Example() *dagger.File  {
	return dag.
			Syft().
			Binary()
}
@function
def example() -> dagger.File:
	return (
		dag.syft()
		.binary()
	)
@func()
example(): File {
	return dag
		.syft()
		.binary()
}

sbom() 🔗

Sbom scans a source directory and returns its SBOM in the given format (a syft output format such as “spdx-json”, “cyclonedx-json”, “syft-json”).

Return Type
File !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-Directory to scan.
formatString "spdx-json"syft output format.
Example
dagger -m github.com/MacroPower/x/toolchains/syft@3f4ef26289cf6c0690d4ce596cd8832b729b8ad4 call \
 sbom --source DIR_PATH
func (m *MyModule) Example(source *dagger.Directory) *dagger.File  {
	return dag.
			Syft().
			Sbom(source)
}
@function
def example(source: dagger.Directory) -> dagger.File:
	return (
		dag.syft()
		.sbom(source)
	)
@func()
example(source: Directory): File {
	return dag
		.syft()
		.sbom(source)
}

withSyft() 🔗

WithSyft installs the syft binary at /usr/local/bin/syft in the given container, for tools (like goreleaser’s sbom step) that invoke it.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
ctrContainer !-Container to install syft into.
Example
dagger -m github.com/MacroPower/x/toolchains/syft@3f4ef26289cf6c0690d4ce596cd8832b729b8ad4 call \
 with-syft --ctr IMAGE:TAG
func (m *MyModule) Example(ctr *dagger.Container) *dagger.Container  {
	return dag.
			Syft().
			WithSyft(ctr)
}
@function
def example(ctr: dagger.Container) -> dagger.Container:
	return (
		dag.syft()
		.with_syft(ctr)
	)
@func()
example(ctr: Container): Container {
	return dag
		.syft()
		.withSyft(ctr)
}