Add docker cli package

Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>
This commit is contained in:
Helder Correia
2022-03-25 15:17:11 -01:00
parent 4f440bc67a
commit 05d79e8ba6
14 changed files with 228 additions and 90 deletions

View File

@@ -0,0 +1,20 @@
---
slug: /1216/docker-cli-load
displayed_sidebar: europa
---
# Loading a dagger image into a docker daemon
Using `cli.#Load`, you can save a dagger image (`docker.#Image`) into a local or remote engine.
It can be useful to debug or test a build locally before pushing.
## Local daemon
```cue file=./plans/docker-cli-load/local.cue
```
## Remote daemon, via SSH
```cue file=./plans/docker-cli-load/ssh.cue
```

View File

@@ -1,20 +0,0 @@
---
slug: /1216/engine-load
displayed_sidebar: europa
---
# Loading a dagger image into a docker daemon
Using `docker.#Load`, you can save a dagger image (`docker.#Image`) into a local or remote engine.
It can be useful to debug or test a build locally before pushing.
## Local daemon
```cue file=./plans/local.cue
```
## Remote daemon, via SSH
```cue file=./plans/ssh.cue
```

View File

@@ -0,0 +1,23 @@
---
slug: /1217/docker-cli-run
displayed_sidebar: europa
---
# Running commands with the docker binary (CLI)
There's a `universe.dagger.io/docker/cli` package that allows you to run docker commands against a local or remote docker engine. Here's a few examples.
## Local daemon
```cue file=./plans/docker-cli-run/local.cue
```
## Remote daemon, via SSH
```cue file=./plans/docker-cli-run/ssh.cue
```
## Remote daemon, via HTTPS
```cue file=./plans/docker-cli-run/tcp.cue
```

View File

@@ -3,6 +3,7 @@ package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker"
"universe.dagger.io/docker/cli"
)
dagger.#Plan & {
@@ -13,7 +14,7 @@ dagger.#Plan & {
...
}
load: docker.#Load & {
load: cli.#Load & {
image: build.output
host: client.filesystem."/var/run/docker.sock".read.contents
tag: "myimage"

View File

@@ -3,6 +3,7 @@ package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker"
"universe.dagger.io/docker/cli"
)
dagger.#Plan & {
@@ -16,7 +17,7 @@ dagger.#Plan & {
...
}
load: docker.#Load & {
load: cli.#Load & {
image: build.output
tag: "myimage:v2"
host: "ssh://root@93.184.216.34"

View File

@@ -0,0 +1,15 @@
package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker/cli"
)
dagger.#Plan & {
client: filesystem: "/var/run/docker.sock": read: contents: dagger.#Service
actions: run: cli.#Run & {
host: client.filesystem."/var/run/docker.sock".read.contents
command: name: "info"
}
}

View File

@@ -0,0 +1,22 @@
package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker/cli"
)
dagger.#Plan & {
client: filesystem: {
"/home/user/.ssh/id_rsa": read: contents: dagger.#Secret
"/home/user/.ssh/known_hosts": read: contents: dagger.#Secret
}
actions: run: cli.#Run & {
host: "ssh://root@93.184.216.34"
ssh: {
key: client.filesystem."/home/user/.ssh/id_rsa".read.contents
knownHosts: client.filesystem."/home/user/.ssh/known_hosts".read.contents
}
command: name: "info"
}
}

View File

@@ -0,0 +1,20 @@
package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker/cli"
)
dagger.#Plan & {
// Directory with certificates. Needs the following files:
// - ca.pem --> (Certificate authority that signed the registry certificate)
// - cert.pem --> (Client certificate)
// - key.pem --> (Client private key)
client: filesystem: "./certs": read: contents: dagger.#FS
actions: run: cli.#Run & {
host: "tcp://93.184.216.34:2376"
certs: client.filesystem."./certs".read.contents
command: name: "info"
}
}