Client
Automatically generated client from Dagger API.
- class dagger.BuildArg(name: str, value: str)
Bases:
Input
Key value object that represents a build argument.
- class dagger.CacheID
Bases:
Scalar
A global cache volume identifier.
- class dagger.CacheSharingMode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
Enum
Sharing mode of the cache volume.
- LOCKED = 'LOCKED'
- PRIVATE = 'PRIVATE'
- SHARED = 'SHARED'
- class dagger.CacheVolume(ctx: Context)
Bases:
Type
A directory whose contents persist across runs.
- async id() CacheID [source]
Note
This is lazyly evaluated, no operation is actually run.
- Returns:
A global cache volume identifier.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.Client(ctx: Context | None = None)
Bases:
Root
- cache_volume(key: str) CacheVolume [source]
Constructs a cache volume for a given cache key.
- Parameters:
key – A string identifier to target this cache volume (e.g., “modules- cache”).
- async check_version_compatibility(version: str) bool [source]
Checks if the current Dagger Engine is compatible with an SDK’s required version.
- Parameters:
version – The SDK’s required version.
- Returns:
The Boolean scalar type represents true or false.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- container(*, id: ContainerID | None = None, platform: Platform | None = None) Container [source]
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.
- async default_platform() Platform [source]
The default platform of the builder.
- Returns:
The platform config OS and architecture in a Container. The format is [os]/[platform]/[version] (e.g., “darwin/arm64/v7”, “windows/amd64”, “linux/arm64”).
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- directory(*, id: DirectoryID | None = None) Directory [source]
Load a directory by ID. No argument produces an empty directory.
- git(url: str, *, keep_git_dir: bool | None = None, experimental_service_host: Container | None = None) GitRepository [source]
Queries a git repository.
- Parameters:
url – Url of the git repository. Can be formatted as https://{host}/{owner}/{repo}, git@{host}/{owner}/{repo} Suffix “.git” is optional.
keep_git_dir – Set to true to keep .git directory.
experimental_service_host – A service which must be started before the repo is fetched.
- http(url: str, *, experimental_service_host: Container | None = None) File [source]
Returns a file containing an http remote url content.
- Parameters:
url – HTTP url to get the content from (e.g., “https://docs.dagger.io”).
experimental_service_host – A service which must be started before the URL is fetched.
- pipeline(name: str, *, description: str | None = None, labels: Sequence[PipelineLabel] | None = None) Client [source]
Creates a named sub-pipeline.
- Parameters:
name – Pipeline name.
description – Pipeline description.
labels – Pipeline labels.
- project_command(*, id: ProjectCommandID | None = None) ProjectCommand [source]
Load a project command from ID.
- class dagger.Container(ctx: Context)
Bases:
Type
An OCI-compatible container, also known as a docker container.
- build(context: Directory, *, dockerfile: str | None = None, build_args: Sequence[BuildArg] | None = None, target: str | None = None, secrets: Sequence[Secret] | None = None) Container [source]
Initializes this container from a Dockerfile build.
- Parameters:
context – Directory context used by the Dockerfile.
dockerfile – Path to the Dockerfile to use. Default: ‘./Dockerfile’.
build_args – Additional build arguments.
target – Target build stage to build.
secrets – Secrets to pass to the build. They will be mounted at /run/secrets/[secret-name] in the build container They can be accessed in the Dockerfile using the “secret” mount type and mount path /run/secrets/[secret-name] e.g. RUN –mount=type=secret,id=my-secret curl url?token=$(cat /run/secrets/my-secret)”
- async default_args() list[str] | None [source]
Retrieves default arguments for future commands.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- directory(path: str) Directory [source]
Retrieves a directory at the given path.
Mounts are included.
- Parameters:
path – The path of the directory to retrieve (e.g., “./src”).
- async endpoint(*, port: int | None = None, scheme: str | None = None) str [source]
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.
- Parameters:
port – The exposed port number for the endpoint
scheme – Return a URL with the given scheme, eg. http for http://
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async entrypoint() list[str] | None [source]
Retrieves entrypoint to be prepended to the arguments of all commands.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async env_variable(name: str) str | None [source]
Retrieves the value of the specified environment variable.
- Parameters:
name – The name of the environment variable to retrieve (e.g., “PATH”).
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async env_variables() list[EnvVariable] [source]
Retrieves the list of environment variables passed to commands.
- async export(path: str, *, platform_variants: Sequence[Container] | None = None, forced_compression: ImageLayerCompression | None = None, media_types: ImageMediaTypes | None = None) bool [source]
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.
- Parameters:
path – Host’s destination path (e.g., “./tarball”). Path can be relative to the engine’s workdir or absolute.
platform_variants – Identifiers for other platform specific containers. Used for multi-platform image.
forced_compression – Force each layer of the exported image to use the specified compression algorithm. If this is unset, then if a layer already has a compressed blob in the engine’s cache, that will be used (this can result in a mix of compression algorithms for different layers). If this is unset and a layer has no compressed blob in the engine’s cache, then it will be compressed using Gzip.
media_types – Use the specified media types for the exported image’s layers. Defaults to OCI, which is largely compatible with most recent container runtimes, but Docker may be needed for older runtimes without OCI support.
- Returns:
The Boolean scalar type represents true or false.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async exposed_ports() list[Port] [source]
Retrieves the list of exposed ports.
This includes ports already exposed by the image, even if not explicitly added with dagger.
Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable.
- file(path: str) File [source]
Retrieves a file at the given path.
Mounts are included.
- Parameters:
path – The path of the file to retrieve (e.g., “./README.md”).
- from_(address: str) Container [source]
Initializes this container from a pulled base image.
- Parameters:
address – Image’s address from its registry. Formatted as [host]/[user]/[repo]:[tag] (e.g., “docker.io/dagger/dagger:main”).
- async hostname() str [source]
Retrieves a hostname which can be used by clients to reach this container.
Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async id() ContainerID [source]
A unique identifier for this container.
Note
This is lazyly evaluated, no operation is actually run.
- Returns:
A unique container identifier. Null designates an empty container (scratch).
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async image_ref() str | None [source]
The unique image reference which can only be retrieved immediately after the ‘Container.From’ call.
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- import_(source: File, *, tag: str | None = None) Container [source]
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.
- Parameters:
source – File to read the container from.
tag – Identifies the tag to import from the archive, if the archive bundles multiple tags.
- async label(name: str) str | None [source]
Retrieves the value of the specified label.
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async mounts() list[str] [source]
Retrieves the list of paths where a directory is mounted.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- pipeline(name: str, *, description: str | None = None, labels: Sequence[PipelineLabel] | None = None) Container [source]
Creates a named sub-pipeline
- Parameters:
name – Pipeline name.
description – Pipeline description.
labels – Pipeline labels.
- async platform() Platform [source]
The platform this container executes and publishes as.
- Returns:
The platform config OS and architecture in a Container. The format is [os]/[platform]/[version] (e.g., “darwin/arm64/v7”, “windows/amd64”, “linux/arm64”).
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async publish(address: str, *, platform_variants: Sequence[Container] | None = None, forced_compression: ImageLayerCompression | None = None, media_types: ImageMediaTypes | None = None) str [source]
Publishes this container as a new image to the specified address.
Publish returns a fully qualified ref. It can also publish platform variants.
- Parameters:
address – Registry’s address to publish the image to. Formatted as [host]/[user]/[repo]:[tag] (e.g. “docker.io/dagger/dagger:main”).
platform_variants – Identifiers for other platform specific containers. Used for multi-platform image.
forced_compression – Force each layer of the published image to use the specified compression algorithm. If this is unset, then if a layer already has a compressed blob in the engine’s cache, that will be used (this can result in a mix of compression algorithms for different layers). If this is unset and a layer has no compressed blob in the engine’s cache, then it will be compressed using Gzip.
media_types – Use the specified media types for the published image’s layers. Defaults to OCI, which is largely compatible with most recent registries, but Docker may be needed for older registries without OCI support.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async stderr() str [source]
The error stream of the last executed command.
Will execute default command if none is set, or error if there’s no default.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async stdout() str [source]
The output stream of the last executed command.
Will execute default command if none is set, or error if there’s no default.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async sync() Container [source]
Forces evaluation of the pipeline in the engine.
It doesn’t run the default command if no exec has been set.
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async user() str | None [source]
Retrieves the user to be set for all commands.
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- with_(cb: Callable[[Container], Container]) Container [source]
Call the provided callable with current Container.
This is useful for reusability and readability by not breaking the calling chain.
- with_default_args(*, args: Sequence[str] | None = None) Container [source]
Configures default arguments for future commands.
- Parameters:
args – Arguments to prepend to future executions (e.g., [“-v”, “–no- cache”]).
- with_directory(path: str, directory: Directory, *, exclude: Sequence[str] | None = None, include: Sequence[str] | None = None, owner: str | None = None) Container [source]
Retrieves this container plus a directory written at the given path.
- Parameters:
path – Location of the written directory (e.g., “/tmp/directory”).
directory – Identifier of the directory to write
exclude – Patterns to exclude in the written directory (e.g., [“node_modules/**”, “.gitignore”, “.git/”]).
include – Patterns to include in the written directory (e.g., [”*.go”, “go.mod”, “go.sum”]).
owner – A user:group to set for the directory and its contents. The user and group can either be an ID (1000:1000) or a name (foo:bar). If the group is omitted, it defaults to the same as the user.
- with_entrypoint(args: Sequence[str]) Container [source]
Retrieves this container but with a different command entrypoint.
- Parameters:
args – Entrypoint to use for future executions (e.g., [“go”, “run”]).
- with_env_variable(name: str, value: str, *, expand: bool | None = None) Container [source]
Retrieves this container plus the given environment variable.
- Parameters:
name – The name of the environment variable (e.g., “HOST”).
value – The value of the environment variable. (e.g., “localhost”).
expand – Replace ${VAR} or $VAR in the value according to the current environment variables defined in the container (e.g., “/opt/bin:$PATH”).
- with_exec(args: Sequence[str], *, skip_entrypoint: bool | None = None, stdin: str | None = None, redirect_stdout: str | None = None, redirect_stderr: str | None = None, experimental_privileged_nesting: bool | None = None, insecure_root_capabilities: bool | None = None) Container [source]
Retrieves this container after executing the specified command inside it.
- Parameters:
args – Command to run instead of the container’s default command (e.g., [“run”, “main.go”]). If empty, the container’s default command is used.
skip_entrypoint – If the container has an entrypoint, ignore it for args rather than using it to wrap them.
stdin – Content to write to the command’s standard input before closing (e.g., “Hello world”).
redirect_stdout – Redirect the command’s standard output to a file in the container (e.g., “/tmp/stdout”).
redirect_stderr – Redirect the command’s standard error to a file in the container (e.g., “/tmp/stderr”).
experimental_privileged_nesting – Provides dagger access to the executed command. Do not use this option unless you trust the command being executed. The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM.
insecure_root_capabilities – Execute the command with all root capabilities. This is similar to running a command with “sudo” or executing docker run with the –privileged flag. Containerization does not provide any security guarantees when using this option. It should only be used when absolutely necessary and only with trusted commands.
- with_exposed_port(port: int, *, protocol: NetworkProtocol | None = None, description: str | None = None) Container [source]
Expose a network port.
- Exposed ports serve two purposes:
For health checks and introspection, when running services
For setting the EXPOSE OCI field when publishing the container
Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable.
- Parameters:
port – Port number to expose
protocol – Transport layer network protocol
description – Optional port description
- with_file(path: str, source: File, *, permissions: int | None = None, owner: str | None = None) Container [source]
Retrieves this container plus the contents of the given file copied to the given path.
- Parameters:
path – Location of the copied file (e.g., “/tmp/file.txt”).
source – Identifier of the file to copy.
permissions – Permission given to the copied file (e.g., 0600). Default: 0644.
owner – A user:group to set for the file. The user and group can either be an ID (1000:1000) or a name (foo:bar). If the group is omitted, it defaults to the same as the user.
- with_focus() Container [source]
Indicate that subsequent operations should be featured more prominently in the UI.
- with_label(name: str, value: str) Container [source]
Retrieves this container plus the given label.
- Parameters:
name – The name of the label (e.g., “org.opencontainers.artifact.created”).
value – The value of the label (e.g., “2023-01-01T00:00:00Z”).
- with_mounted_cache(path: str, cache: CacheVolume, *, source: Directory | None = None, sharing: CacheSharingMode | None = None, owner: str | None = None) Container [source]
Retrieves this container plus a cache volume mounted at the given path.
- Parameters:
path – Location of the cache directory (e.g., “/cache/node_modules”).
cache – Identifier of the cache volume to mount.
source – Identifier of the directory to use as the cache volume’s root.
sharing – Sharing mode of the cache volume.
owner – A user:group to set for the mounted cache directory. Note that this changes the ownership of the specified mount along with the initial filesystem provided by source (if any). It does not have any effect if/when the cache has already been created. The user and group can either be an ID (1000:1000) or a name (foo:bar). If the group is omitted, it defaults to the same as the user.
- with_mounted_directory(path: str, source: Directory, *, owner: str | None = None) Container [source]
Retrieves this container plus a directory mounted at the given path.
- Parameters:
path – Location of the mounted directory (e.g., “/mnt/directory”).
source – Identifier of the mounted directory.
owner – A user:group to set for the mounted directory and its contents. The user and group can either be an ID (1000:1000) or a name (foo:bar). If the group is omitted, it defaults to the same as the user.
- with_mounted_file(path: str, source: File, *, owner: str | None = None) Container [source]
Retrieves this container plus a file mounted at the given path.
- Parameters:
path – Location of the mounted file (e.g., “/tmp/file.txt”).
source – Identifier of the mounted file.
owner – A user or user:group to set for the mounted file. The user and group can either be an ID (1000:1000) or a name (foo:bar). If the group is omitted, it defaults to the same as the user.
- with_mounted_secret(path: str, source: Secret, *, owner: str | None = None, mode: int | None = None) Container [source]
Retrieves this container plus a secret mounted into a file at the given path.
- Parameters:
path – Location of the secret file (e.g., “/tmp/secret.txt”).
source – Identifier of the secret to mount.
owner – A user:group to set for the mounted secret. The user and group can either be an ID (1000:1000) or a name (foo:bar). If the group is omitted, it defaults to the same as the user.
mode – Permission given to the mounted secret (e.g., 0600). This option requires an owner to be set to be active. Default: 0400.
- with_mounted_temp(path: str) Container [source]
Retrieves this container plus a temporary directory mounted at the given path.
- Parameters:
path – Location of the temporary directory (e.g., “/tmp/temp_dir”).
- with_new_file(path: str, *, contents: str | None = None, permissions: int | None = None, owner: str | None = None) Container [source]
Retrieves this container plus a new file written at the given path.
- Parameters:
path – Location of the written file (e.g., “/tmp/file.txt”).
contents – Content of the file to write (e.g., “Hello world!”).
permissions – Permission given to the written file (e.g., 0600). Default: 0644.
owner – A user:group to set for the file. The user and group can either be an ID (1000:1000) or a name (foo:bar). If the group is omitted, it defaults to the same as the user.
- with_registry_auth(address: str, username: str, secret: Secret) Container [source]
Retrieves this container with a registry authentication for a given address.
- Parameters:
address – Registry’s address to bind the authentication to. Formatted as [host]/[user]/[repo]:[tag] (e.g. docker.io/dagger/dagger:main).
username – The username of the registry’s account (e.g., “Dagger”).
secret – The API key, password or token to authenticate to this registry.
- with_rootfs(directory: Directory) Container [source]
Initializes this container from this DirectoryID.
- with_secret_variable(name: str, secret: Secret) Container [source]
Retrieves this container plus an env variable containing the given secret.
- Parameters:
name – The name of the secret variable (e.g., “API_SECRET”).
secret – The identifier of the secret value.
- with_service_binding(alias: str, service: Container) Container [source]
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.
- Parameters:
alias – A name that can be used to reach the service from the container
service – Identifier of the service container
- with_unix_socket(path: str, source: Socket, *, owner: str | None = None) Container [source]
Retrieves this container plus a socket forwarded to the given Unix socket path.
- Parameters:
path – Location of the forwarded Unix socket (e.g., “/tmp/socket”).
source – Identifier of the socket to forward.
owner – A user:group to set for the mounted socket. The user and group can either be an ID (1000:1000) or a name (foo:bar). If the group is omitted, it defaults to the same as the user.
- with_user(name: str) Container [source]
Retrieves this container with a different command user.
- Parameters:
name – The user to set (e.g., “root”).
- with_workdir(path: str) Container [source]
Retrieves this container with a different working directory.
- Parameters:
path – The path to set as the working directory (e.g., “/app”).
- without_env_variable(name: str) Container [source]
Retrieves this container minus the given environment variable.
- Parameters:
name – The name of the environment variable (e.g., “HOST”).
- without_exposed_port(port: int, *, protocol: NetworkProtocol | None = None) Container [source]
Unexpose a previously exposed port.
Currently experimental; set _EXPERIMENTAL_DAGGER_SERVICES_DNS=0 to disable.
- Parameters:
port – Port number to unexpose
protocol – Port protocol to unexpose
- without_focus() Container [source]
Indicate that subsequent operations should not be featured more prominently in the UI.
This is the initial state of all containers.
- without_label(name: str) Container [source]
Retrieves this container minus the given environment label.
- Parameters:
name – The name of the label to remove (e.g., “org.opencontainers.artifact.created”).
- without_mount(path: str) Container [source]
Retrieves this container after unmounting everything at the given path.
- Parameters:
path – Location of the cache directory (e.g., “/cache/node_modules”).
- without_registry_auth(address: str) Container [source]
Retrieves this container without the registry authentication of a given address.
- Parameters:
address – Registry’s address to remove the authentication from. Formatted as [host]/[user]/[repo]:[tag] (e.g. docker.io/dagger/dagger:main).
- without_unix_socket(path: str) Container [source]
Retrieves this container with a previously added Unix socket removed.
- Parameters:
path – Location of the socket to remove (e.g., “/tmp/socket”).
- async workdir() str | None [source]
Retrieves the working directory for all commands.
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.ContainerID
Bases:
Scalar
A unique container identifier. Null designates an empty container (scratch).
- class dagger.Directory(ctx: Context)
Bases:
Type
A directory.
- diff(other: Directory) Directory [source]
Gets the difference between this directory and an another directory.
- Parameters:
other – Identifier of the directory to compare.
- directory(path: str) Directory [source]
Retrieves a directory at the given path.
- Parameters:
path – Location of the directory to retrieve (e.g., “/src”).
- docker_build(*, dockerfile: str | None = None, platform: Platform | None = None, build_args: Sequence[BuildArg] | None = None, target: str | None = None, secrets: Sequence[Secret] | None = None) Container [source]
Builds a new Docker container from this directory.
- Parameters:
dockerfile – Path to the Dockerfile to use (e.g., “frontend.Dockerfile”). Defaults: ‘./Dockerfile’.
platform – The platform to build.
build_args – Build arguments to use in the build.
target – Target build stage to build.
secrets – Secrets to pass to the build. They will be mounted at /run/secrets/[secret-name].
- async entries(*, path: str | None = None) list[str] [source]
Returns a list of files and directories at the given path.
- Parameters:
path – Location of the directory to look at (e.g., “/src”).
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async export(path: str) bool [source]
Writes the contents of the directory to a path on the host.
- Parameters:
path – Location of the copied directory (e.g., “logs/”).
- Returns:
The Boolean scalar type represents true or false.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- file(path: str) File [source]
Retrieves a file at the given path.
- Parameters:
path – Location of the file to retrieve (e.g., “README.md”).
- async id() DirectoryID [source]
The content-addressed identifier of the directory.
Note
This is lazyly evaluated, no operation is actually run.
- Returns:
A content-addressed directory identifier.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- pipeline(name: str, *, description: str | None = None, labels: Sequence[PipelineLabel] | None = None) Directory [source]
Creates a named sub-pipeline
- Parameters:
name – Pipeline name.
description – Pipeline description.
labels – Pipeline labels.
- async sync() Directory [source]
Force evaluation in the engine.
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- with_(cb: Callable[[Directory], Directory]) Directory [source]
Call the provided callable with current Directory.
This is useful for reusability and readability by not breaking the calling chain.
- with_directory(path: str, directory: Directory, *, exclude: Sequence[str] | None = None, include: Sequence[str] | None = None) Directory [source]
Retrieves this directory plus a directory written at the given path.
- Parameters:
path – Location of the written directory (e.g., “/src/”).
directory – Identifier of the directory to copy.
exclude – Exclude artifacts that match the given pattern (e.g., [“node_modules/”, “.git*”]).
include – Include only artifacts that match the given pattern (e.g., [“app/”, “package.*”]).
- with_file(path: str, source: File, *, permissions: int | None = None) Directory [source]
Retrieves this directory plus the contents of the given file copied to the given path.
- Parameters:
path – Location of the copied file (e.g., “/file.txt”).
source – Identifier of the file to copy.
permissions – Permission given to the copied file (e.g., 0600). Default: 0644.
- with_new_directory(path: str, *, permissions: int | None = None) Directory [source]
Retrieves this directory plus a new directory created at the given path.
- Parameters:
path – Location of the directory created (e.g., “/logs”).
permissions – Permission granted to the created directory (e.g., 0777). Default: 0755.
- with_new_file(path: str, contents: str, *, permissions: int | None = None) Directory [source]
Retrieves this directory plus a new file written at the given path.
- Parameters:
path – Location of the written file (e.g., “/file.txt”).
contents – Content of the written file (e.g., “Hello world!”).
permissions – Permission given to the copied file (e.g., 0600). Default: 0644.
- with_timestamps(timestamp: int) Directory [source]
Retrieves this directory with all file/dir timestamps set to the given time.
- Parameters:
timestamp – Timestamp to set dir/files in. Formatted in seconds following Unix epoch (e.g., 1672531199).
- class dagger.DirectoryID
Bases:
Scalar
A content-addressed directory identifier.
- class dagger.EnvVariable(ctx: Context)
Bases:
Type
A simple key value object that represents an environment variable.
- async name() str [source]
The environment variable name.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async value() str [source]
The environment variable value.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.File(ctx: Context)
Bases:
Type
A file.
- async contents() str [source]
Retrieves the contents of the file.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async export(path: str, *, allow_parent_dir_path: bool | None = None) bool [source]
Writes the file to a file path on the host.
- Parameters:
path – Location of the written directory (e.g., “output.txt”).
allow_parent_dir_path – If allowParentDirPath is true, the path argument can be a directory path, in which case the file will be created in that directory.
- Returns:
The Boolean scalar type represents true or false.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async id() FileID [source]
Retrieves the content-addressed identifier of the file.
Note
This is lazyly evaluated, no operation is actually run.
- Returns:
A file identifier.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async size() int [source]
Gets the size of the file, in bytes.
- Returns:
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async sync() File [source]
Force evaluation in the engine.
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.FileID
Bases:
Scalar
A file identifier.
- class dagger.GitRef(ctx: Context)
Bases:
Type
A git ref (tag, branch or commit).
- class dagger.GitRepository(ctx: Context)
Bases:
Type
A git repository.
- branch(name: str) GitRef [source]
Returns details on one branch.
- Parameters:
name – Branch’s name (e.g., “main”).
- class dagger.Host(ctx: Context)
Bases:
Type
Information about the host execution environment.
- directory(path: str, *, exclude: Sequence[str] | None = None, include: Sequence[str] | None = None) Directory [source]
Accesses a directory on the host.
- Parameters:
path – Location of the directory to access (e.g., “.”).
exclude – Exclude artifacts that match the given pattern (e.g., [“node_modules/”, “.git*”]).
include – Include only artifacts that match the given pattern (e.g., [“app/”, “package.*”]).
- file(path: str) File [source]
Accesses a file on the host.
- Parameters:
path – Location of the file to retrieve (e.g., “README.md”).
- set_secret_file(name: str, path: str) Secret [source]
Sets a secret given a user-defined name and the file path on the host, and returns the secret. The file is limited to a size of 512000 bytes.
- Parameters:
name – The user defined name for this secret.
path – Location of the file to set as a secret.
- class dagger.ImageLayerCompression(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
Enum
Compression algorithm to use for image layers.
- EStarGZ = 'EStarGZ'
- Gzip = 'Gzip'
- Uncompressed = 'Uncompressed'
- Zstd = 'Zstd'
- class dagger.ImageMediaTypes(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
Enum
Mediatypes to use in published or exported image metadata.
- DockerMediaTypes = 'DockerMediaTypes'
- OCIMediaTypes = 'OCIMediaTypes'
- class dagger.Label(ctx: Context)
Bases:
Type
A simple key value object that represents a label.
- async name() str [source]
The label name.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async value() str [source]
The label value.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.NetworkProtocol(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
Enum
Transport layer network protocol associated to a port.
- TCP = 'TCP'
- UDP = 'UDP'
- class dagger.PipelineLabel(name: str, value: str)
Bases:
Input
Key value object that represents a Pipeline label.
- class dagger.Platform
Bases:
Scalar
The platform config OS and architecture in a Container. The format is [os]/[platform]/[version] (e.g., “darwin/arm64/v7”, “windows/amd64”, “linux/arm64”).
- class dagger.Port(ctx: Context)
Bases:
Type
A port exposed by a container.
- async description() str | None [source]
The port description.
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async port() int [source]
The port number.
- Returns:
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async protocol() NetworkProtocol [source]
The transport layer network protocol.
- Returns:
Transport layer network protocol associated to a port.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.Project(ctx: Context)
Bases:
Type
A collection of Dagger resources that can be queried and invoked.
- async commands() list[ProjectCommand] [source]
Commands provided by this project
- async id() ProjectID [source]
A unique identifier for this project.
Note
This is lazyly evaluated, no operation is actually run.
- Returns:
A unique project identifier.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- load(source: Directory, config_path: str) Project [source]
Initialize this project from the given directory and config path
- async name() str [source]
Name of the project
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.ProjectCommand(ctx: Context)
Bases:
Type
A command defined in a project that can be invoked from the CLI.
- async description() str | None [source]
Documentation for what this command does.
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async flags() list[ProjectCommandFlag] [source]
Flags accepted by this command.
- async id() ProjectCommandID [source]
A unique identifier for this command.
Note
This is lazyly evaluated, no operation is actually run.
- Returns:
A unique project command identifier.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async name() str [source]
The name of the command.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async result_type() str | None [source]
The name of the type returned by this command.
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async subcommands() list[ProjectCommand] [source]
Subcommands, if any, that this command provides.
- class dagger.ProjectCommandFlag(ctx: Context)
Bases:
Type
A flag accepted by a project command.
- async description() str | None [source]
Documentation for what this flag sets.
- Returns:
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.
- Return type:
Optional[str]
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async name() str [source]
The name of the flag.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.ProjectCommandID
Bases:
Scalar
A unique project command identifier.
- class dagger.ProjectID
Bases:
Scalar
A unique project identifier.
- class dagger.Secret(ctx: Context)
Bases:
Type
A reference to a secret value, which can be handled more safely than the value itself.
- async id() SecretID [source]
The identifier for this secret.
Note
This is lazyly evaluated, no operation is actually run.
- Returns:
A unique identifier for a secret.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- async plaintext() str [source]
The value of this secret.
- Returns:
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.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.SecretID
Bases:
Scalar
A unique identifier for a secret.
- class dagger.Socket(ctx: Context)
Bases:
Type
- async id() SocketID [source]
The content-addressed identifier of the socket.
Note
This is lazyly evaluated, no operation is actually run.
- Returns:
A content-addressed socket identifier.
- Return type:
- Raises:
ExecuteTimeoutError – If the time to execute the query exceeds the configured timeout.
QueryError – If the API returns an error.
- class dagger.SocketID
Bases:
Scalar
A content-addressed socket identifier.