Dagger GraphQL API Reference
Queries
cacheVolume
Description
Constructs a cache volume for a given cache key.
Type
Arguments
Name | Description |
---|---|
key - String!
|
A string identifier to target this cache volume (e.g., "modules-cache"). |
container
Description
Loads a container from ID.
Null ID returns an empty container (scratch). Optional platform argument initializes new containers to execute and publish as that platform. Platform defaults to that of the builder's host.
Type
Arguments
Name | Description |
---|---|
id - ContainerID
|
|
platform - Platform
|
Example
query {
container {
from(address: "alpine") {
defaultArgs
entrypoint
platform
rootfs {
entries
}
}
}
}
defaultPlatform
Description
The default platform of the builder.
Type
directory
Description
Load a directory by ID. No argument produces an empty directory.
Type
Arguments
Name | Description |
---|---|
id - DirectoryID
|
Example
query {
directory {
withNewDirectory(path: "foo") {
withNewDirectory(path: "foo/bar/baz") {
withNewFile(path: "foo/bar/greeting", contents: "hello, world!\n") {
foo: entries(path: "foo")
bar: entries(path: "foo/bar")
greeting: file(path: "foo/bar/greeting") {
contents
}
}
}
}
}
}
file
Description
Loads a file by ID.
Example
query {
file(id: "eyJsbGIiOnsiZGVmIjpbIklqWVNOQWovLy8vLy8vLy8vLzhCRVAvLy8vLy8vLy8vL3dFcUhBb0VMMlp2YnhDa0F4b0dTR1ZzYkc4aEtQLy8vLy8vLy8vLy93RlNBRm9BIiwiQ2trS1IzTm9ZVEkxTmpwak1EQTVPV1U1TURrNFpEVmlObUkyWVdWaFpXWXpObVpsTnpsaU9UUTVOVEF4TnpoalptRmpPRGxsWVdKbE5XRmtZbUprTkdZeFptWXdNV0l3TkdWbSJdLCJtZXRhZGF0YSI6eyJzaGEyNTY6NWNjOGQ1M2VkZTRjYzUyODQ0OTIyYWFhZDlhYjIzMzc3MzY3NWMwMDJjOTM5NGZhYTk0OTg1OTZmNGFjMWRiNiI6eyJjYXBzIjp7ImNvbnN0cmFpbnRzIjp0cnVlLCJwbGF0Zm9ybSI6dHJ1ZX19LCJzaGEyNTY6YzAwOTllOTA5OGQ1YjZiNmFlYWVmMzZmZTc5Yjk0OTUwMTc4Y2ZhYzg5ZWFiZTVhZGJiZDRmMWZmMDFiMDRlZiI6eyJjYXBzIjp7ImZpbGUuYmFzZSI6dHJ1ZX19fSwiU291cmNlIjp7ImxvY2F0aW9ucyI6eyJzaGEyNTY6YzAwOTllOTA5OGQ1YjZiNmFlYWVmMzZmZTc5Yjk0OTUwMTc4Y2ZhYzg5ZWFiZTVhZGJiZDRmMWZmMDFiMDRlZiI6e319fX0sImZpbGUiOiJmb28iLCJwbGF0Zm9ybSI6eyJhcmNoaXRlY3R1cmUiOiIiLCJvcyI6IiJ9fQ==") {
contents
export(path: "greeting")
}
}
git
Description
Queries a git repository.
Type
Arguments
Name | Description |
---|---|
url - String!
|
Url of the git repository. Can be formatted as https://{host}/{owner}/{repo}, git@{host}/{owner}/{repo} Suffix ".git" is optional. |
keepGitDir - Boolean
|
Set to true to keep .git directory. |
experimentalServiceHost - ContainerID
|
A service which must be started before the repo is fetched. |
Example
query {
git(url: "https://github.com/dagger/dagger", keepGitDir: true) {
branch(name: "main") {
tree {
file(path: ".git/refs/heads/main") {
contents
}
}
}
}
}
host
Description
Queries the host environment.
Type
Example
query {
host {
read: directory(path: ".") {
file(path: ".markdownlint.yaml") {
contents
}
}
home: envVariable(name: "HOME") {
value
}
pwd: envVariable(name: "PWD") {
value
}
write: directory(path: ".") {
withNewFile(path: "greeting", contents: "Hello Dagger!") {
export(path: ".")
}
}
}
}
http
Description
Returns a file containing an http remote url content.
Type
Arguments
Name | Description |
---|---|
url - String!
|
HTTP url to get the content from (e.g., "https://docs.dagger.io"). |
experimentalServiceHost - ContainerID
|
A service which must be started before the URL is fetched. |
pipeline
Description
Creates a named sub-pipeline.
Type
Arguments
Name | Description |
---|---|
name - String!
|
Pipeline name. |
description - String
|
Pipeline description. |
labels - [PipelineLabel!]
|
Pipeline labels. |
Example
query {
pipeline(name: "build", description: "Builds the app container") {
container {
id
}
}
}
project
Description
Load a project from ID.
Example
projectCommand
Description
Load a project command from ID.
Type
Arguments
Name | Description |
---|---|
id - ProjectCommandID
|
Example
secret
Description
Loads a secret from its ID.
Example
query {
secret(id: "eyJob3N0X2VudiI6IkhPTUUifQ==") {
plaintext
}
}
setSecret
Description
Sets a secret given a user defined name to its plaintext and returns the secret.
Example
socket
Description
Loads a socket by its ID.
Example
query {
socket(id: "eyJob3N0X3BhdGgiOiIvdmFyL3J1bi9kb2NrZXIuc29jayJ9") {
id
}
}
Types
Boolean
Description
The Boolean
scalar type represents true
or false
.
BuildArg
CacheID
Description
A global cache volume identifier.
CacheSharingMode
Description
Sharing mode of the cache volume.
Values
Enum Value | Description |
---|---|
|
Shares the cache volume amongst many build pipelines |
|
Keeps a cache volume for a single build pipeline |
|
Shares the cache volume amongst many build pipelines, but will serialize the writes |
Example
"SHARED"
CacheVolume
Container
Description
An OCI-compatible container, also known as a docker container.
Fields
Field Name | Description |
---|---|
id - ContainerID! |
A unique identifier for this container. |
sync - ContainerID! |
Forces evaluation of the pipeline in the engine. It doesn't run the default command if no exec has been set. |
platform - Platform! |
The platform this container executes and publishes as. |
pipeline - Container! |
Creates a named sub-pipeline |
Arguments
|
|
from - Container! |
Initializes this container from a pulled base image. |
Arguments
|
|
build - Container! |
Initializes this container from a Dockerfile build. |
Arguments
|
|
rootfs - Directory! |
Retrieves this container's root filesystem. Mounts are not included. |
fs - Directory! |
Retrieves this container's root filesystem. Mounts are not included. Replaced by rootfs .
|
withRootfs - Container! |
Initializes this container from this DirectoryID. |
Arguments
|
|
withFS - Container! |
Initializes this container from this DirectoryID. Replaced by withRootfs .
|
Arguments
|
|
directory - Directory! |
Retrieves a directory at the given path. Mounts are included. |
Arguments
|
|
file - File! |
Retrieves a file at the given path. Mounts are included. |
Arguments
|
|
user - String |
Retrieves the user to be set for all commands. |
withUser - Container! |
Retrieves this container with a different command user. |
Arguments
|
|
workdir - String |
Retrieves the working directory for all commands. |
withWorkdir - Container! |
Retrieves this container with a different working directory. |
Arguments
|
|
envVariables - [EnvVariable!]! |
Retrieves the list of environment variables passed to commands. |
envVariable - String |
Retrieves the value of the specified environment variable. |
Arguments
|
|
withEnvVariable - Container! |
Retrieves this container plus the given environment variable. |
Arguments |
|
labels - [Label!]! |
Retrieves the list of labels passed to container. |
label - String |
Retrieves the value of the specified label. |
Arguments
|
|
withLabel - Container! |
Retrieves this container plus the given label. |
withoutLabel - Container! |
Retrieves this container minus the given environment label. |
Arguments
|
|
withSecretVariable - Container! |
Retrieves this container plus an env variable containing the given secret. |
withoutEnvVariable - Container! |
Retrieves this container minus the given environment variable. |
Arguments
|
|
entrypoint - [String!] |
Retrieves entrypoint to be prepended to the arguments of all commands. |
withEntrypoint - Container! |
Retrieves this container but with a different command entrypoint. |
Arguments
|
|
defaultArgs - [String!] |
Retrieves default arguments for future commands. |
withDefaultArgs - Container! |
Configures default arguments for future commands. |
Arguments
|
|
mounts - [String!]! |
Retrieves the list of paths where a directory is mounted. |
withMountedDirectory - Container! |
Retrieves this container plus a directory mounted at the given path. |
Arguments
|
|
withMountedFile - Container! |
Retrieves this container plus a file mounted at the given path. |
Arguments
|
|
withMountedTemp - Container! |
Retrieves this container plus a temporary directory mounted at the given path. |
Arguments
|
|
withMountedCache - Container! |
Retrieves this container plus a cache volume mounted at the given path. |
Arguments
|
|
withMountedSecret - Container! |
Retrieves this container plus a secret mounted into a file at the given path. |
Arguments
|
|
withoutMount - Container! |
Retrieves this container after unmounting everything at the given path. |
Arguments
|
|
withFile - Container! |
Retrieves this container plus the contents of the given file copied to the given path. |
Arguments |
|
withNewFile - Container! |
Retrieves this container plus a new file written at the given path. |
Arguments
|
|
withDirectory - Container! |
Retrieves this container plus a directory written at the given path. |
Arguments
|
|
withUnixSocket - Container! |
Retrieves this container plus a socket forwarded to the given Unix socket path. |
Arguments
|
|
withoutUnixSocket - Container! |
Retrieves this container with a previously added Unix socket removed. |
Arguments
|
|
withExec - Container! |
Retrieves this container after executing the specified command inside it. |
Arguments
|
|
exec - Container! |
Retrieves this container after executing the specified command inside it. Replaced by withExec .
|
Arguments
|
|
exitCode - Int! |
Exit code of the last executed command. Zero means success. Will execute default command if none is set, or error if there's no default. |
stdout - String! |
The output stream of the last executed command. Will execute default command if none is set, or error if there's no default. |
stderr - String! |
The error stream of the last executed command. Will execute default command if none is set, or error if there's no default. |
publish - String! |
Publishes this container as a new image to the specified address. Publish returns a fully qualified ref. It can also publish platform variants. |
Arguments
|
|
export - Boolean! |
Writes the container as an OCI tarball to the destination file path on the host for the specified platform variants. Return true on success. It can also publishes platform variants. |
Arguments
|
|
import - Container! |
Reads the container from an OCI tarball. NOTE: this involves unpacking the tarball to an OCI store on the host at $XDG_CACHE_DIR/dagger/oci. This directory can be removed whenever you like. |
withRegistryAuth - Container! |
Retrieves this container with a registry authentication for a given address. |
Arguments
|
|
withoutRegistryAuth - Container! |
Retrieves this container without the registry authentication of a given address. |
Arguments
|
|
imageRef - String |
The unique image reference which can only be retrieved immediately after the 'Container.From' call. |
withExposedPort - Container! |
Expose a network port. Exposed ports serve two purposes:
Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable. |
Arguments
|
|
withoutExposedPort - Container! |
Unexpose a previously exposed port. Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable. |
Arguments
|
|
exposedPorts - [Port!]! |
Retrieves the list of exposed ports. Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable. |
withServiceBinding - Container! |
Establish a runtime dependency on a service. The service will be started automatically when needed and detached when it is no longer needed, executing the default command if none is set. The service will be reachable from the container via the provided hostname alias. The service dependency will also convey to any files or directories produced by the container. Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable. |
Arguments
|
|
hostname - String! |
Retrieves a hostname which can be used by clients to reach this container. Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable. |
endpoint - String! |
Retrieves an endpoint that clients can use to reach this container. If no port is specified, the first exposed port is used. If none exist an error is returned. If a scheme is specified, a URL is returned. Otherwise, a host:port pair is returned. Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable. |
ContainerID
Description
A unique container identifier. Null designates an empty container (scratch).
Directory
Description
A directory.
Fields
Field Name | Description |
---|---|
id - DirectoryID! |
The content-addressed identifier of the directory. |
pipeline - Directory! |
Creates a named sub-pipeline |
Arguments
|
|
entries - [String!]! |
Returns a list of files and directories at the given path. |
Arguments
|
|
file - File! |
Retrieves a file at the given path. |
Arguments
|
|
withFile - Directory! |
Retrieves this directory plus the contents of the given file copied to the given path. |
withNewFile - Directory! |
Retrieves this directory plus a new file written at the given path. |
withoutFile - Directory! |
Retrieves this directory with the file at the given path removed. |
Arguments
|
|
directory - Directory! |
Retrieves a directory at the given path. |
Arguments
|
|
withDirectory - Directory! |
Retrieves this directory plus a directory written at the given path. |
Arguments
|
|
withNewDirectory - Directory! |
Retrieves this directory plus a new directory created at the given path. |
withoutDirectory - Directory! |
Retrieves this directory with the directory at the given path removed. |
Arguments
|
|
diff - Directory! |
Gets the difference between this directory and an another directory. |
Arguments
|
|
export - Boolean! |
Writes the contents of the directory to a path on the host. |
Arguments
|
|
dockerBuild - Container! |
Builds a new Docker container from this directory. |
Arguments
|
|
withTimestamps - Directory! |
Retrieves this directory with all file/dir timestamps set to the given time. |
Arguments
|
DirectoryID
Description
A content-addressed directory identifier.
EnvVariable
File
Description
A file.
Fields
Field Name | Description |
---|---|
id - FileID! |
Retrieves the content-addressed identifier of the file. |
contents - String! |
Retrieves the contents of the file. |
secret - Secret! |
Retrieves a secret referencing the contents of this file. insecure, leaves secret in cache. Superseded by setSecret
|
size - Int! |
Gets the size of the file, in bytes. |
export - Boolean! |
Writes the file to a file path on the host. |
Arguments
|
|
withTimestamps - File! |
Retrieves this file with its created/modified timestamps set to the given time. |
Arguments
|
FileID
Description
A file identifier.
GitRef
GitRepository
Description
A git repository.
Fields
Field Name | Description |
---|---|
branches - [String!]! |
Lists of branches on the repository. |
branch - GitRef! |
Returns details on one branch. |
Arguments
|
|
tags - [String!]! |
Lists of tags on the repository. |
tag - GitRef! |
Returns details on one tag. |
Arguments
|
|
commit - GitRef! |
Returns details on one commit. |
Arguments
|
Host
Description
Information about the host execution environment.
Fields
Field Name | Description |
---|---|
workdir - Directory! |
Retrieves the current working directory on the host. Use directory with path set to '.' instead.
|
directory - Directory! |
Accesses a directory on the host. |
envVariable - HostVariable |
Accesses an environment variable on the host. |
Arguments
|
|
unixSocket - Socket! |
Accesses a Unix socket on the host. |
Arguments
|
HostVariable
ImageLayerCompression
Description
Compression algorithm to use for image layers
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"Gzip"
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Label
NetworkProtocol
Description
Transport layer network protocol associated to a port.
Values
Enum Value | Description |
---|---|
|
TCP (Transmission Control Protocol) |
|
UDP (User Datagram Protocol) |
Example
"TCP"
PipelineLabel
Platform
Description
The platform config OS and architecture in a Container.
The format is [os]/[platform]/[version] (e.g., "darwin/arm64/v7", "windows/amd64", "linux/arm64").
Port
Description
A port exposed by a container.
Fields
Field Name | Description |
---|---|
port - Int! |
The port number. |
protocol - NetworkProtocol! |
The transport layer network protocol. |
description - String |
The port description. |
Project
Description
A collection of Dagger resources that can be queried and invoked.
Fields
Field Name | Description |
---|---|
id - String! |
A unique identifier for this project. |
load - Project! |
Initialize this project from the given directory and config path |
Arguments
|
|
name - String! |
Name of the project |
commands - [ProjectCommand!] |
Commands provided by this project |
ProjectCommand
Description
A command defined in a project that can be invoked from the CLI.
Fields
Field Name | Description |
---|---|
id - String! |
A unique identifier for this command. |
name - String! |
The name of the command. |
flags - [ProjectCommandFlag!] |
Flags accepted by this command. |
description - String |
Documentation for what this command does. |
subcommands - [ProjectCommand!] |
Subcommands, if any, that this command provides. |
ProjectCommandFlag
Description
A flag accepted by a project command.
Fields
Field Name | Description |
---|---|
name - String! |
The name of the flag. |
description - String |
Documentation for what this flag sets. |
ProjectCommandID
Description
A unique project command identifier.
ProjectID
Description
A unique project identifier.
Secret
SecretID
Description
A unique identifier for a secret.
Socket
SocketID
Description
A content-addressed socket identifier.
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.