This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Andrea Luzzardi 5a1d4bff62 Support loading artifacts into a Docker Engine
This adds support to loading artifacts (e.g. docker.#Build,
os.#Container, ...) into any arbitrary docker engine (through a
dagger.#Stream for UNIX sockets or SSH for a remote engine)

Implementation:
- Add op.#SaveImage which serializes an artifact into an arbitrary path
  (docker tarball format)
- Add docker.#Load which uses op.#SaveImage to serialize to disk and
  executes `docker load` to load it back

Caveats: Because we're doing this in userspace rather than letting
dagger itself load the image, the performance is pretty bad.

The buildkit API is meant for streaming (get a stream of a docker image
pipe it into docker load). Because of userspace, we have to load the
entire docker image into memory, then serialize it in a single WriteFile
LLB operation.

Example:

```cue
package main

import (
	"alpha.dagger.io/dagger"
	"alpha.dagger.io/docker"
)

source: dagger.#Input & dagger.#Artifact

dockersocket: dagger.#Input & dagger.#Stream

build: docker.#Build & {
	"source": source
}

load: docker.#Load & {
	source: build
	tag:    "testimage"
	socket: dockersocket
}
```

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-10-12 14:16:01 -07:00
.dagger/env universe vendoring 2021-07-08 17:52:21 +02:00
.github ci: disable GHA caching 2021-10-05 12:39:50 -07:00
client Handle secrets in DockerLogin operation 2021-08-31 13:04:16 +02:00
cmd tty logger: show multi-line messages 2021-10-06 11:51:10 -07:00
compiler performance: compile CUE client side 2021-08-20 16:34:49 +02:00
docs Support loading artifacts into a Docker Engine 2021-10-12 14:16:01 -07:00
environment Support loading artifacts into a Docker Engine 2021-10-12 14:16:01 -07:00
keychain keychain: always ensure the default key is generated 2021-06-17 17:23:11 +02:00
solver dagger.#Socket support 2021-09-17 11:53:09 -07:00
state Fix/dagger edit: wrong dir Path leads to infinite loop 2021-09-26 20:56:22 +02:00
stdlib Support loading artifacts into a Docker Engine 2021-10-12 14:16:01 -07:00
telemetry telemetry support 2021-07-20 14:28:06 +02:00
tests logger: TTY logs support (live update) 2021-10-05 15:38:34 -07:00
util logger: TTY logs support (live update) 2021-10-05 15:38:34 -07:00
version move versioning into the version package 2021-07-19 17:43:45 +02:00
website build(deps): bump react-social-login-buttons in /website 2021-10-11 19:17:04 +00:00
.gitignore Add basic test for kubernetes kind documentation 2021-09-01 11:14:09 +02:00
.golangci.yml cleanup: move packages to top level, change vanity URL 2021-05-25 16:54:00 -07:00
.goreleaser.yml move versioning into the version package 2021-07-19 17:43:45 +02:00
.markdownlint.yaml docs: kubernetes: support kind/gke/eks 2021-06-14 17:37:24 +02:00
CONTRIBUTING.md Fix typo in CONTRIBUTING.md 2021-07-29 18:29:45 +02:00
doc.go add a go file to the root folder 2021-02-17 13:13:17 -08:00
Dockerfile build(deps): bump golang from 1.16.7-alpine to 1.16.8-alpine 2021-09-10 19:06:13 +00:00
go.mod logger: TTY logs support (live update) 2021-10-05 15:38:34 -07:00
go.sum logger: TTY logs support (live update) 2021-10-05 15:38:34 -07:00
install.ps1 Updated the Installer and Docs 2021-06-30 17:54:48 +02:00
install.sh release: added install script 2021-05-03 17:20:45 -07:00
LICENSE add LICENSE file 2021-01-14 12:36:19 -08:00
Makefile docs: ♻️ merge API Reference and Universe menu entries 2021-09-08 15:19:19 +02:00
README.md Fix README documentation dead link 2021-08-20 16:36:48 +02:00
tracing.compose.yaml Move to OpenTelemetry 2021-07-09 09:47:36 +02:00
universe universe: another name for stdlib 2021-05-01 01:03:58 -07:00

Dagger

Dagger is a programmable deployment system.

Using Dagger, software builders can automate the deployment of any application to any infrastructure, in just a few lines of code.

Getting Started

Documentation website