docker
This module provides Docker image build and push operations using Dagger'snative container build capabilities. Supports Azure ACR and other registries.
Installation
dagger install dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972Entrypoint
Return Type
Docker ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
func (m *MyModule) Example() *dagger.Docker {
return dag.
Docker()
}@function
def example() -> dagger.Docker:
return (
dag.docker()
)@func()
example(): Docker {
return dag
.docker()
}Types
Docker 🔗
Docker module for building and pushing container images to registries
registryHost() 🔗
Registry authentication
Return Type
String ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
registry-hostfunc (m *MyModule) Example(ctx context.Context) string {
return dag.
Docker().
RegistryHost(ctx)
}@function
async def example() -> str:
return await (
dag.docker()
.registry_host()
)@func()
async example(): Promise<string> {
return dag
.docker()
.registryHost()
}registryUsername() 🔗
Return Type
String ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
registry-usernamefunc (m *MyModule) Example(ctx context.Context) string {
return dag.
Docker().
RegistryUsername(ctx)
}@function
async def example() -> str:
return await (
dag.docker()
.registry_username()
)@func()
async example(): Promise<string> {
return dag
.docker()
.registryUsername()
}registryPassword() 🔗
Return Type
Secret ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
registry-passwordfunc (m *MyModule) Example() *dagger.Secret {
return dag.
Docker().
RegistryPassword()
}@function
def example() -> dagger.Secret:
return (
dag.docker()
.registry_password()
)@func()
example(): Secret {
return dag
.docker()
.registryPassword()
}buildArgs() 🔗
Build configuration
Return Type
[BuildArg ! ] ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
build-argsfunc (m *MyModule) Example() []*dagger.DockerBuildArg {
return dag.
Docker().
BuildArgs()
}@function
def example() -> List[dagger.DockerBuildArg]:
return (
dag.docker()
.build_args()
)@func()
example(): DockerBuildArg[] {
return dag
.docker()
.buildArgs()
}tags() 🔗
Return Type
[String ! ] ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
tagsfunc (m *MyModule) Example(ctx context.Context) []string {
return dag.
Docker().
Tags(ctx)
}@function
async def example() -> List[str]:
return await (
dag.docker()
.tags()
)@func()
async example(): Promise<string[]> {
return dag
.docker()
.tags()
}target() 🔗
Return Type
String ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
targetfunc (m *MyModule) Example(ctx context.Context) string {
return dag.
Docker().
Target(ctx)
}@function
async def example() -> str:
return await (
dag.docker()
.target()
)@func()
async example(): Promise<string> {
return dag
.docker()
.target()
}platform() 🔗
Return Type
Scalar ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
platformfunc (m *MyModule) Example() {
return dag.
Docker().
Platform()
}@function
def example() -> :
return (
dag.docker()
.platform()
)@func()
example(): {
return dag
.docker()
.platform()
}withTarget() 🔗
WithTarget sets the build target for multi-stage Dockerfiles
Specifies which stage to build when using multi-stage builds.
Return Type
Docker !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| target | String ! | - | Stage name from Dockerfile (e.g., "builder", "production") |
Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
with-target --target stringfunc (m *MyModule) Example(target string) *dagger.Docker {
return dag.
Docker().
WithTarget(target)
}@function
def example(target: str) -> dagger.Docker:
return (
dag.docker()
.with_target(target)
)@func()
example(target: string): Docker {
return dag
.docker()
.withTarget(target)
}build() 🔗
Build builds a Docker image from a Dockerfile using Dagger’s native build
Returns a container that can be exported or pushed to a registry.
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Directory containing Dockerfile and build context |
| imageName | String ! | - | Image name for reference (e.g., "myapp") |
| dockerfile | String | "Dockerfile" | Path to Dockerfile relative to source |
Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
build --source DIR_PATH --image-name stringfunc (m *MyModule) Example(source *dagger.Directory, imageName string) *dagger.Container {
return dag.
Docker().
Build(source, imageName)
}@function
def example(source: dagger.Directory, image_name: str) -> dagger.Container:
return (
dag.docker()
.build(source, image_name)
)@func()
example(source: Directory, imageName: string): Container {
return dag
.docker()
.build(source, imageName)
}withArg() 🔗
WithArg adds a Docker build argument (–build-arg)
Build arguments are available during image build and can be referenced in Dockerfile using ARG instructions. Chain multiple calls for multiple args.
Return Type
Docker !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| key | String ! | - | Argument name (e.g., "VERSION", "BUILD_DATE") |
| value | String ! | - | Argument value |
Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
with-arg --key string --value stringfunc (m *MyModule) Example(key string, value string) *dagger.Docker {
return dag.
Docker().
WithArg(key, value)
}@function
def example(key: str, value: str) -> dagger.Docker:
return (
dag.docker()
.with_arg(key, value)
)@func()
example(key: string, value: string): Docker {
return dag
.docker()
.withArg(key, value)
}push() 🔗
Push pushes a built container to a registry
Requires registry authentication configured via WithRegistry(). Pushes all configured tags (defaults to “latest” if none specified). Returns the image digest.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| container | Container ! | - | Built container from Build() |
| imageName | String ! | - | Image name without registry prefix (e.g., "myapp" or "myorg/myapp") |
Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
push --container IMAGE:TAG --image-name stringfunc (m *MyModule) Example(ctx context.Context, container *dagger.Container, imageName string) string {
return dag.
Docker().
Push(ctx, container, imageName)
}@function
async def example(container: dagger.Container, image_name: str) -> str:
return await (
dag.docker()
.push(container, image_name)
)@func()
async example(container: Container, imageName: string): Promise<string> {
return dag
.docker()
.push(container, imageName)
}withTag() 🔗
WithTag adds image tags.
If the tag is a semantic version (e.g., “v1.2.3”, “v1.0.0-rc4”), it automatically generates all appropriate tags: - v1.0.0-dev -> v1.0.0-dev, dev - v1.0.0-rc1 -> v1.0.0-rc1, v1.0.0-rc, v1.0-rc, v1-rc, rc - v1.0.0-release -> v1.0.0-release, v1.0.0, v1.0, v1, release, latest - v1.0.0 -> v1.0.0, v1.0, v1, latest
For non-semver tags (e.g., “latest”), only that tag is added.
Return Type
Docker !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| tag | String ! | - | Image tag (e.g., "v1.2.3", "v1.0.0-rc4", "latest", "dev") |
Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
with-tag --tag stringfunc (m *MyModule) Example(tag string) *dagger.Docker {
return dag.
Docker().
WithTag(tag)
}@function
def example(tag: str) -> dagger.Docker:
return (
dag.docker()
.with_tag(tag)
)@func()
example(tag: string): Docker {
return dag
.docker()
.withTag(tag)
}withRegistry() 🔗
WithRegistry configures Docker registry authentication for pushing images
Supports Azure ACR (*.azurecr.io) and other Docker-compatible registries. Use environment variable references (env:VAR_NAME) for credentials.
Return Type
Docker !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| host | String ! | - | Registry hostname (e.g., "myregistry.azurecr.io") |
| username | String ! | - | Registry username (use env:VAR_NAME for environment variables) |
| password | Secret ! | - | Registry password or token (use env:VAR_NAME for environment variables) |
Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
with-registry --host string --username string --password env:MYSECRETfunc (m *MyModule) Example(host string, username string, password *dagger.Secret) *dagger.Docker {
return dag.
Docker().
WithRegistry(host, username, password)
}@function
def example(host: str, username: str, password: dagger.Secret) -> dagger.Docker:
return (
dag.docker()
.with_registry(host, username, password)
)@func()
example(host: string, username: string, password: Secret): Docker {
return dag
.docker()
.withRegistry(host, username, password)
}buildAndPush() 🔗
BuildAndPush builds and pushes a Docker image in one operation
Convenience function combining Build() and Push(). Requires registry authentication configured via WithRegistry(). Returns the image digest.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Directory containing Dockerfile and build context |
| imageName | String ! | - | Image name without registry prefix (e.g., "myapp") |
| dockerfile | String | "Dockerfile" | Path to Dockerfile relative to source |
Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
build-and-push --source DIR_PATH --image-name stringfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory, imageName string) string {
return dag.
Docker().
BuildAndPush(ctx, source, imageName)
}@function
async def example(source: dagger.Directory, image_name: str) -> str:
return await (
dag.docker()
.build_and_push(source, image_name)
)@func()
async example(source: Directory, imageName: string): Promise<string> {
return dag
.docker()
.buildAndPush(source, imageName)
}withPlatform() 🔗
WithPlatform sets the target platform for the build
Overrides the default platform (linux/amd64).
Return Type
Docker !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| platform | Scalar ! | - | Target platform (e.g., "linux/amd64", "linux/arm64") |
Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
with-platformfunc (m *MyModule) Example(platform ) *dagger.Docker {
return dag.
Docker().
WithPlatform(platform)
}@function
def example(platform: ) -> dagger.Docker:
return (
dag.docker()
.with_platform(platform)
)@func()
example(platform: ): Docker {
return dag
.docker()
.withPlatform(platform)
}test() 🔗
Test verifies the module loads correctly
Return Type
String ! Example
dagger -m dev.azure.com/dordogne/DAGGER-TEMPLATES/_git/DAGGER-TEMPLATES/containers/docker@f73ac22028d740bbf5c9de3fcc54d81478909972 call \
testfunc (m *MyModule) Example(ctx context.Context) string {
return dag.
Docker().
Test(ctx)
}@function
async def example() -> str:
return await (
dag.docker()
.test()
)@func()
async example(): Promise<string> {
return dag
.docker()
.test()
}BuildArg 🔗
DockerBuildArg represents a Docker build argument
key() 🔗
Return Type
String ! Example
Function DockerBuildArg.key is not accessible from the docker moduleFunction DockerBuildArg.key is not accessible from the docker moduleFunction DockerBuildArg.key is not accessible from the docker moduleFunction DockerBuildArg.key is not accessible from the docker modulevalue() 🔗
Return Type
String ! Example
Function DockerBuildArg.value is not accessible from the docker moduleFunction DockerBuildArg.value is not accessible from the docker moduleFunction DockerBuildArg.value is not accessible from the docker moduleFunction DockerBuildArg.value is not accessible from the docker module