Dagger
Search

docker

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

Installation

dagger install github.com/purpleclay/daggerverse/docker@bba3a4ee46fd663a5577337e2221db56c646a0b7

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 multi-platform images

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[Scalar ! ] ["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. A tarball will be generated using the following convention <name>@<platform>.tar (e.g. image~linux-amd64.tar)

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
nameString "image"a name for the exported tarball
Example
func (m *myModule) example(dir *Directory) *Directory  {
	return dag.
			Docker().
			Build(dir).
			Save()
}

image() 🔗

Retrieves a built image for a given platform as a container

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
platformScalar "linux/amd64"the platform of the docker image to return
Example
func (m *myModule) example(dir *Directory) *Container  {
	return dag.
			Docker().
			Build(dir).
			Image()
}

publish() 🔗

Publish the built image to a target registry. Supports publishing of mulit-platform images

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)
}