additional progress

Signed-off-by: Richard Jones <richard@dagger.io>
This commit is contained in:
Richard Jones 2021-09-27 12:33:01 -06:00
parent be2aeeccdf
commit 00e10219ca

View File

@ -24,13 +24,13 @@ In this tutorial we will learn:
## Deploy an Application Locally
The following instructions assume you are working locally, but could just as easily be run on a remote
machine into which you have a shell.
machine into which you have a shell. For the sake of brevity and simplicity we will create directories under
your home directory, but feel free to replace `~/` with a path that works best for you.
### Install Dagger
First, make sure [you have installed Dagger](../1001-install.md). You can run `dagger version` to ensure
you have the latest installed and working. For the sake of brevity and simplicity we will create directories under
your home directory, but feel free to replace `~/` with a path that works best for you.
you have the latest installed and working.
### Create a Dagger Project
@ -53,4 +53,54 @@ Dagger will load all `.cue` files recursively in the current Dagger project. Mor
### Write a Dagger Plan
A Dagger _plan_ is written in CUE and declaratively expresses the _resources_, _dependencies_, and _logic_ to deploy an application to an environment.
A Dagger _plan_ is written in CUE and expresses the _resources_, _dependencies_, and _logic_ to deploy an application to an environment. Unlike traditional glue code written in an scripting language (e.g.: Bash, PowerShell), a Dagger plan is _declarative_ rather than _imperative_. This frees us from thinking about order of operations, since Dagger will infer dependendencies and calculate correct order on its own.
First create a directory to hold our plan, separate from our application code:
```shell
mkdir ./plan
```
Next, create a file in `plan/` called `todoapp.cue` with the following content
```cue
package todoapp
import (
"alpha.dagger.io/dagger"
"alpha.dagger.io/dagger/stream"
"alpha.dagger.io/js/yarn"
)
// Source code of the sample application
source: dagger.#Artifact & dagger.#Input
// Build the source code using Yarn
app: yarn.#Package & {
"source": source
}
```
### Create an Environment
```shell
dagger new local -p ./plan
dagger list
```
### Define Input Values per Environment
```shell
dagger input list
```
```text
Input Value Set by user Description
app.source dagger.#Artifact false Application source code
```
```shell
dagger -e local input dir app.source ./app
```