"kb style" docs: decouple URLs from structure

Signed-off-by: Solomon Hykes <solomon@dagger.io>
This commit is contained in:
Solomon Hykes
2021-07-16 16:37:29 +00:00
committed by Solomon Hykes
parent 5a8f9d3e7c
commit 57754bebb8
21 changed files with 38 additions and 16 deletions

View File

@@ -0,0 +1,115 @@
---
slug: /1006/google-cloud-run/
---
# Deploy to Google Cloud Run with Dagger
This tutorial illustrates how to use Dagger to build, push and deploy Docker images to Cloud Run.
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
## Initialize a Dagger Workspace and Environment
### (optional) Setup example app
You will need the local copy of the [Dagger examples repository](https://github.com/dagger/examples) used in previous guides
```shell
git clone https://github.com/dagger/examples
```
Make sure that all commands are being run from the todoapp directory:
```shell
cd examples/todoapp
```
### (optional) Initialize a Cue module
This guide will use the same directory as the root of the Dagger workspace and the root of the Cue module, but you can create your Cue module anywhere inside the Dagger workspace.
```shell
cue mod init
```
### Organize your package
Let's create a new directory for our Cue package:
```shell
mkdir gcpcloudrun
```
### Create a basic plan
```cue title="todoapp/gcpcloudrun/source.cue"
package gcpcloudrun
import (
"alpha.dagger.io/dagger"
"alpha.dagger.io/docker"
"alpha.dagger.io/gcp"
"alpha.dagger.io/gcp/cloudrun"
"alpha.dagger.io/gcp/gcr"
)
// Source code of the sample application
src: dagger.#Artifact & dagger.#Input
// GCR full image name
imageRef: string & dagger.#Input
image: docker.#Build & {
source: src
}
gcpConfig: gcp.#Config
creds: gcr.#Credentials & {
config: gcpConfig
}
push: docker.#Push & {
target: imageRef
source: image
auth: {
username: creds.username
secret: creds.secret
}
}
deploy: cloudrun.#Service & {
config: gcpConfig
image: push.ref
}
```
## Set up the environment
### Create a new environment
Now that your Cue package is ready, let's create an environment to run it:
```shell
dagger new 'gcpcloudrun' -p ./gcpcloudrun
```
### Configure user inputs
```shell
dagger input dir src . -e gcpcloudrun
dagger input text deploy.name todoapp -e gcpcloudrun
dagger input text imageRef gcr.io/<your-project>/todoapp -e gcpcloudrun
dagger input text gcpConfig.region us-west2 -e gcpcloudrun
dagger input text gcpConfig.project <your-project> -e gcpcloudrun
dagger input secret gcpConfig.serviceKey -f ./gcp-sa-key.json -e gcpcloudrun
```
## Deploy
Now that everything is set correctly, let's deploy on Cloud Run:
```shell
dagger up -e gcpcloudrun
```