5a1d4bff62
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> |
||
---|---|---|
.. | ||
.dagger/env | ||
alpine | ||
argocd | ||
aws | ||
azure | ||
cue.mod | ||
dagger | ||
docker | ||
gcp | ||
git | ||
go | ||
io | ||
java/maven | ||
js/yarn | ||
kubernetes | ||
netlify | ||
os | ||
random | ||
terraform | ||
.gitignore | ||
helpers.bash | ||
package.json | ||
stdlib.go | ||
universe.bats | ||
yarn.lock |