2022-02-16 19:37:16 +01:00
|
|
|
---
|
|
|
|
slug: /1213/api
|
2022-03-03 16:05:07 +01:00
|
|
|
displayed_sidebar: europa
|
2022-02-16 19:37:16 +01:00
|
|
|
---
|
|
|
|
|
|
|
|
# Dagger CUE API (0.2+)
|
|
|
|
|
|
|
|
As of Dagger 0.2 (codename Europa), the Dagger CUE API can be imported at `dagger.io/dagger`.
|
|
|
|
|
|
|
|
The Dagger CUE API is the set of CUE packages released alongside the Dagger engine, to allow developers to access its features.
|
|
|
|
|
|
|
|
### Plan definition
|
|
|
|
|
2022-03-10 17:27:52 +01:00
|
|
|
`#Plan` defines the structure of a Dagger plan - a complete configuration executable by `dagger do`.
|
2022-02-16 19:37:16 +01:00
|
|
|
|
|
|
|
### Core types
|
|
|
|
|
|
|
|
Dagger extends the CUE type system with the following core types:
|
|
|
|
|
|
|
|
* `#FS`: a reference to a filesystem tree
|
|
|
|
* `#Secret`: a secure reference to an external secret
|
|
|
|
* `#Service` a reference to a network service endpoints
|
|
|
|
|
|
|
|
### 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:
|
|
|
|
|
|
|
|
| Core action | File | Description |
|
|
|
|
| -- | -- | -- |
|
|
|
|
| `#Exec` | exec.cue | Execute a command in a docker-compatible container |
|
|
|
|
| `#HTTPFetch` | http.cue | Download an archive from an HTTP server |
|
|
|
|
| `#Push` | image.cue | Upload an image to a docker registry |
|
|
|
|
| `#Pull` | image.cue | Download an image from a docker registry |
|
|
|
|
| `#Dockerfile` | image.cue | Execute a Dockerfile |
|
|
|
|
| `#Set` | image.cue | Modify a docker image |
|
|
|
|
| `#GitPush` | git.cue | Upload a repository to a remote git server |
|
|
|
|
| `#GitPull` | git.cue | Download a repository from a remote git server |
|
|
|
|
| `#DecodeSecret` | secrets.cue | Decode a secret without leaking its contents |
|
|
|
|
| `#NewSecret` | secrets.cue | Dynamically create a new secret |
|
|
|
|
| `#Source` | fs.cue | Access the source for the current CUE package |
|
|
|
|
| `#Mkdir` | fs.cue | Create a directory in a filesystem tree |
|
|
|
|
| `#ReadFile` | fs.cue | Read a file from a tree |
|
|
|
|
| `#WriteFile` | fs.cue | Write a file to a tree |
|
|
|
|
| `#Scratch` | fs.cue | Create an empty tree |
|
|
|
|
| `#Copy` | fs.cue | Copy files between two trees |
|
|
|
|
| `#Subdir` | fs.cue | Read a subdirectory from a filesystem tree |
|