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