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 ## Deploy an Application Locally
The following instructions assume you are working locally, but could just as easily be run on a remote 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 ### Install Dagger
First, make sure [you have installed Dagger](../1001-install.md). You can run `dagger version` to ensure 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 you have the latest installed and working.
your home directory, but feel free to replace `~/` with a path that works best for you.
### Create a Dagger Project ### 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 ### 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
```