This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
dagger/docs/core-concepts/1213-dagger-cue.md
Gerhard Lazu dcf3b7ed21
Add missing definitions to Dagger CUE API
Link to the source of truth cue files.

While at it, move this page from Knowledge Base, which is a generic
category, to Core Concepts. The URL didn't change so that we don't break
existing links. FWIW /1213/dagger-cue would have been my choice.

Initially contributed as a change part of
https://github.com/dagger/dagger/pull/1758

Should be merged after https://github.com/dagger/dagger/pull/1799

Related to https://github.com/dagger/dagger/pull/1768

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2022-03-15 21:44:37 +00:00

6.8 KiB

slug displayed_sidebar
/1213/api europa

Dagger CUE API (0.2+)

As of Dagger 0.2 (codename Europa), the Dagger CUE API can be imported via dagger.io/dagger

The Dagger CUE API is the set of CUE packages released alongside the Dagger engine.

Developers of other Dagger packages are expected to build on top of these core packages.

Plan definition

#Plan defines the structure of a Dagger plan - a complete configuration executable by dagger do

Definition File Description
#Plan plan.cue A special kind of program which dagger can execute

Core types

Dagger extends the CUE type system with the following core types:

Definition File Description
#Address types.cue Network service address
#CacheDir exec.cue A (best effort) persistent cache dir
#FS types.cue Reference to a filesystem tree
#HealthCheck image.cue Container health check
#ImageConfig image.cue Container image config
#Mount exec.cue Transient filesystem mount
#Ref image.cue An address for a remote container image
#Scratch types.cue An empty directory
#Secret types.cue Secure reference to an external secret
#Service types.cue Reference to network service endpoints
#TempDir exec.cue A temporary directory for command execution

Core actions

Dagger works by executing actions in a certain order and passing data between actions in a certain layout.

Developers can combine actions into higher-level actions, which in turn can be combined into even higher-level actions, and so on at arbitrary levels of depth. At the bottom of this abstraction stack are core actions: these are implemented by Dagger itself, and are always available.

The following core actions are available:

Definition File Description
#Copy fs.cue Copy files between two filesystem trees
#DecodeSecret secrets.cue Decode a secret without leaking its contents
#Dockerfile image.cue Build a container image using a Dockerfile
#Exec exec.cue Execute a command in a docker-compatible container
#GitPull git.cue Download a repository from a remote git server
#GitPush git.cue Upload a repository to a remote git server
#HTTPFetch http.cue Download an archive from an HTTP server
#Mkdir fs.cue Create a directory in a filesystem tree
#NewSecret secrets.cue Dynamically create a new secret
#Pull image.cue Download an image from a docker registry
#Push image.cue Upload an image to a docker registry
#ReadFile fs.cue Read a file from a filesystem tree
#Scratch fs.cue Create an empty filesystem tree
#Set image.cue Modify a docker image
#Source fs.cue Access the source for the current CUE package
#Subdir fs.cue Read a subdirectory from a filesystem tree
#TrimSecret secrets.cue Trim leading and trailing space characters from a secret
#WriteFile fs.cue Write a file to a filesystem tree