Dagger
Search

depot

The Depot module can be used to route any container image build to our remote build service. You can use it to build container images on
fast native Intel & Arm CPUs with persistent layer cache on NVMe disks. We have functions for both depot build and depot bake.

With build, we build your container image for the Dockerfile you specify and return you the built container to use in your pipeline.
With bake, you can pass in your bake file and we will build all of the targets in your bake file concurrently.

For more examples of cool things you can do with Dagger + Depot, check out our README in our Daggerverse repo.

Installation

dagger install github.com/depot/daggerverse/depot@v1.4.0

Entrypoint

Return Type
Depot
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
func (m *MyModule) Example() *dagger.Depot  {
	return dag.
			Depot()
}
@function
def example() -> dagger.Depot:
	return (
		dag.depot()
	)
@func()
example(): Depot {
	return dag
		.depot()
}

Types

Depot 🔗

build() 🔗

Build builds a container image artifact from a Dockerfile using https://depot.dev.

Example usage: dagger call build --token env:DEPOT_TOKEN --project $DEPOT_PROJECT --directory . --lint container

Return Type
BuildArtifact !
Arguments
NameTypeDefault ValueDescription
depotVersionString -

Depot CLI version

tokenSecret !-

Depot token

projectString !-

Depot project id

directoryDirectory !-

Source context directory for build

dockerfileString "Dockerfile"

Path to dockerfile

platforms[Scalar ! ] null

Platforms are architecture and OS combinations for which to build the image.

sbomBoolean false

Produce software bill of materials for image

noCacheBoolean false

D not use layer cache when building the image

noSaveBoolean false

Do not save the image to the depot registry

saveTags[String ! ] -

Additional custom tags for the saved image

lintBoolean false

Lint dockerfile

buildArgs[String ! ] nullNo description provided
labels[String ! ] null

Labels to apply to the image

outputs[String ! ] null

Outputs override the default

provenanceString -No description provided
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 build --token env:MYSECRET --project string --directory DIR_PATH
func (m *MyModule) Example(token *dagger.Secret, project string, directory *dagger.Directory) *dagger.DepotBuildArtifact  {
	return dag.
			Depot().
			Build(token, project, directory)
}
@function
def example(token: dagger.Secret, project: str, directory: dagger.Directory) -> dagger.DepotBuildArtifact:
	return (
		dag.depot()
		.build(token, project, directory)
	)
@func()
example(token: Secret, project: string, directory: Directory): DepotBuildArtifact {
	return dag
		.depot()
		.build(token, project, directory)
}

bake() 🔗

Bake builds many containers using https://depot.dev.

example usage: dagger call bake --token $DEPOT_TOKEN --project $DEPOT_PROJECT --directory . --bake-file docker-bake.hcl

Return Type
Artifacts !
Arguments
NameTypeDefault ValueDescription
depotVersionString -

depot CLI version

tokenSecret !-

depot token

projectString !-

depot project id

directoryDirectory !-

source context directory for build

bakeFileString !-

path to bake definition file

sbomBoolean false

produce software bill of materials for image

noCacheBoolean false

do not use layer cache when building the image

noSaveBoolean false

Do not save the image to the depot registry

lintBoolean false

lint dockerfile

provenanceString -No description provided
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string
func (m *MyModule) Example(token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string) *dagger.DepotArtifacts  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile)
}
@function
def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str) -> dagger.DepotArtifacts:
	return (
		dag.depot()
		.bake(token, project, directory, bake_file)
	)
@func()
example(token: Secret, project: string, directory: Directory, bakeFile: string): DepotArtifacts {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
}

BuildArtifact 🔗

buildId() 🔗

depot build id

Return Type
String !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 build-id
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) string  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			BuildId(ctx)
}
@function
async def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> str:
	return await (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.build_id()
	)
@func()
async example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Promise<string> {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.buildId()
}

token() 🔗

depot token

Return Type
Secret !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 token
func (m *MyModule) Example(token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) *dagger.Secret  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			Token()
}
@function
def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> dagger.Secret:
	return (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.token()
	)
@func()
example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Secret {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.token()
}

project() 🔗

depot project id

Return Type
String !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 project
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) string  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			Project(ctx)
}
@function
async def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> str:
	return await (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.project()
	)
@func()
async example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Promise<string> {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.project()
}

target() 🔗

Return Type
String !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 target
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) string  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			Target(ctx)
}
@function
async def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> str:
	return await (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.target()
	)
@func()
async example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Promise<string> {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.target()
}

sbomdir() 🔗

Return Type
Directory !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 sbomdir
func (m *MyModule) Example(token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) *dagger.Directory  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			Sbomdir()
}
@function
def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> dagger.Directory:
	return (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.sbomdir()
	)
@func()
example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Directory {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.sbomdir()
}

imageName() 🔗

Return Type
String !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 image-name
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) string  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			ImageName(ctx)
}
@function
async def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> str:
	return await (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.image_name()
	)
@func()
async example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Promise<string> {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.imageName()
}

size() 🔗

Return Type
Integer !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 size
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) int  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			Size(ctx)
}
@function
async def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> int:
	return await (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.size()
	)
@func()
async example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Promise<number> {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.size()
}

container() 🔗

Creates a container from the recently built image artifact.

Return Type
Container !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 container
func (m *MyModule) Example(token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) *dagger.Container  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			Container()
}
@function
def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> dagger.Container:
	return (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.container()
	)
@func()
example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Container {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.container()
}

imageBytes() 🔗

Returns the size in bytes of the image.

Return Type
Integer !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 image-bytes
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) int  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			ImageBytes(ctx)
}
@function
async def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> int:
	return await (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.image_bytes()
	)
@func()
async example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): Promise<number> {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.imageBytes()
}

sbom() 🔗

Returns an SBOM if built option --sbom was requested. Returns an error if the build did not produce SBOMs.

Return Type
File !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string \
 sbom
func (m *MyModule) Example(token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) *dagger.File  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target).
			Sbom()
}
@function
def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> dagger.File:
	return (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
		.sbom()
	)
@func()
example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): File {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
		.sbom()
}

Artifacts 🔗

artifacts() 🔗

Return Type
[BuildArtifact ! ] !
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 artifacts
func (m *MyModule) Example(token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string) []*dagger.DepotBuildArtifact  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Artifacts()
}
@function
def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str) -> List[dagger.DepotBuildArtifact]:
	return (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.artifacts()
	)
@func()
example(token: Secret, project: string, directory: Directory, bakeFile: string): DepotBuildArtifact[] {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.artifacts()
}

get() 🔗

Return Type
BuildArtifact !
Arguments
NameTypeDefault ValueDescription
targetString !-No description provided
Example
dagger -m github.com/depot/daggerverse/depot@f618f0d3e595f987145c9a55e4837d5d70151d52 call \
 bake --token env:MYSECRET --project string --directory DIR_PATH --bake-file string \
 get --target string
func (m *MyModule) Example(token *dagger.Secret, project string, directory *dagger.Directory, bakeFile string, target string) *dagger.DepotBuildArtifact  {
	return dag.
			Depot().
			Bake(token, project, directory, bakeFile).
			Get(target)
}
@function
def example(token: dagger.Secret, project: str, directory: dagger.Directory, bake_file: str, target: str) -> dagger.DepotBuildArtifact:
	return (
		dag.depot()
		.bake(token, project, directory, bake_file)
		.get(target)
	)
@func()
example(token: Secret, project: string, directory: Directory, bakeFile: string, target: string): DepotBuildArtifact {
	return dag
		.depot()
		.bake(token, project, directory, bakeFile)
		.get(target)
}