Dagger
Search

docker

A collection of functions for building, saving and publishing your Docker based projects

Installation

dagger install github.com/purpleclay/daggerverse/docker@v0.3.1

Entrypoint

Return Type
Docker !
Arguments
NameTypeDefault ValueDescription
registryString "docker.io"the address of the registry to authenticate with
usernameString -the username for authenticating with the registry
passwordSecret -the password for authenticating with the registry
Example
func (m *myModule) example() *Docker  {
	return dag.
			Docker()
}

Types

Docker đź”—

Docker dagger module

build() đź”—

Build an image using a Dockerfile. Supports cross-compilation

Examples:

Build an image using the current directory as the context

$ dagger call build –dir .

Build an image using cross-compilation

$ dagger call build –dir . –platfrom “linux/amd64,linux/arm64”

Build an image using build-args and a build target

$ dagger call build –dir . –args “VERSION=0.1.0” –target debug

Return Type
Build !
Arguments
NameTypeDefault ValueDescription
dirDirectory !-the path to a directory that will be used as the docker context
fileString "Dockerfile"the path to the Dockfile
args[String ! ] -a list of build arguments in the format of arg=value
targetString -the name of a target build stage
platform[String ! ] ["linux/amd64"]a list of target platforms for cross-compilation
Example
func (m *myModule) example(dir *Directory) *DockerBuild  {
	return dag.
			Docker().
			Build(dir)
}

Build đź”—

DockerBuild contains an image built from the provided Dockerfile, it serves as an intermediate type for chaining other functions. If multiple platforms were provided, then multiple images will exist

save() đź”—

Save the built image as a tarball ready for exporting

Examples:

Save the tarball with the given name

$ dagger call build –dir . save –name awesome_service

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
nameString "image"a name for the exported tarball, will automatically be suffixed by its platform (e.g. image_linux_amd64.)
Example
func (m *myModule) example(dir *Directory) *Directory  {
	return dag.
			Docker().
			Build(dir).
			Save()
}

publish() đź”—

Publish the built image to a target registry

Examples:

Publish a built image to the ttl.sh registry

$ dagger call build –dir . publish –ref ttl.sh/purpleclay-test

Publish a cross-compiled image to the ttl.sh registry with multiple tags

$ dagger call build –dir . –platform “linux/amd64,linux/arm64” publish –ref ttl.sh/purpleclay-test –tags “latest,0.1.0”

Return Type
String !
Arguments
NameTypeDefault ValueDescription
refString !-a fully qualified image reference without tags
tags[String ! ] ["latest"]a list of tags that should be published with the image
Example
func (m *myModule) example(ctx context.Context, dir *Directory, ref string) string  {
	return dag.
			Docker().
			Build(dir).
			Publish(ctx, ref)
}