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
Richard Jones
d496b77c71
added test for docker run with ports
...
Signed-off-by: Richard Jones <richard@dagger.io>
2021-09-28 09:33:02 -06:00
Richard Jones
c04ef323d2
cue fmt
...
Signed-off-by: Richard Jones <richard@dagger.io>
2021-09-27 20:40:55 -06:00
Richard Jones
9f16bcdadb
added ports to docker.#Run
...
Signed-off-by: Richard Jones <richard@dagger.io>
2021-09-27 20:39:28 -06:00
Sam Alba
e757af6706
Merge pull request #980 from VazeeKevin/tasks/docker-args-secrets
...
Add #Secret type to Docker #Build args
2021-09-23 15:31:03 -07:00
Kevin Poirot
51f96172bd
Add #Secret type to Docker #Build args
...
Signed-off-by: Kevin Poirot <kevin@vazee.fr>
2021-09-23 11:13:59 +02:00
Sam Alba
4ccf030db8
stdlib: tests local docker socket
...
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-09-21 17:21:32 -07:00
Sam Alba
eaa965127a
stdlib: added support for local docker socket
...
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-09-21 17:19:00 -07:00
Kevin Poirot
a364307f0e
Add test build with args to Docker #Build
...
Signed-off-by: Kevin Poirot <kevin@vazee.fr>
2021-09-15 10:48:17 +02:00
Kevin Poirot
3e14920062
Update Docker #Build to incorporate image from Dockerfile
...
Signed-off-by: Kevin Poirot <kevin@vazee.fr>
2021-09-15 08:55:59 +02:00
Kevin Poirot
924fd163eb
Add args option to Docker #Build
...
Signed-off-by: Kevin Poirot <kevin@vazee.fr>
2021-09-13 14:38:20 +02:00
Tom Chauveau
eabf1b52e5
Update docker push tests
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-08-31 14:44:06 +02:00
Tom Chauveau
7cc1c8e5dd
Update docker package according to op.#PushContainer
improvement
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-08-31 13:05:22 +02:00
Guillaume de Rouville
ecd409951c
docker.#Push: Set auth as optional
...
Signed-off-by: Guillaume de Rouville <guillaume.derouville@gmail.com>
2021-07-02 01:21:56 +02:00
Tom Chauveau
a4856e7a6b
Add new test to docker that push to 2 registry in one plan
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-07-01 15:58:11 +02:00
Tom Chauveau
d10f2a49a5
Rename field according to @shykes review
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-30 16:58:04 +02:00
Tom Chauveau
67a982eb0f
Move push and pull tests plans to docker subpackages
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-30 16:58:04 +02:00
Tom Chauveau
5468f60e39
Normalize reference to login on registry
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-30 16:58:04 +02:00
Tom Chauveau
7d1bbcc416
Fix docker hub login error when using image ref as target
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-30 16:58:04 +02:00
Tom Chauveau
f842f1ed1d
Remove old docker push and pull test
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-30 16:58:04 +02:00
Tom Chauveau
b1ed40ffed
Improve #docker.Push definition :
...
- Push to private registry
- Output ref and digest
- Update doc
- Add tests to universe.bats
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-30 16:58:04 +02:00
Tom Chauveau
8e8438e464
Compose tests doesn't bind a special port anymore
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-28 17:36:01 +02:00
Tom Chauveau
e1c72890ec
Add random name generation to avoid orphans during parallel CI
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-26 16:18:18 +02:00
Tom Chauveau
020c458921
Add project management in compose.#App definition
...
I found an issue when during tests execution : there was orphan.
It's because #App doesn't give way to specify the compose project,
by default it's the directory where you launch your app but in our
definition, it will always be source.
The problem is that if we launch two differents docker-compose in the same
server, his project name will be source for both and it will create
orphans problems on cleanup (by docker-compose down).
This case is exactly what we do in tests so I've add the field name
to specify the projet name and avoid that issue.
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-26 16:07:14 +02:00
Andrea Luzzardi
ad1eb75893
Merge pull request #572 from TomChv/docker-compose
...
Add Docker compose package
2021-06-25 19:35:32 +02:00
Tom Chauveau
2fbb9e7744
Update import to alpha version
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 17:26:51 +02:00
Tom Chauveau
aaa6f8f351
Simplify tests
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 17:16:11 +02:00
Tom Chauveau
c99e39ec9c
Move tests plan from dagger dir to universe
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 17:00:38 +02:00
Tom Chauveau
e4ac04c98c
Update import to new alpha version
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 16:56:28 +02:00
Tom Chauveau
ae209ee090
Add compose.#Up test in universe
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 16:56:28 +02:00
Tom Chauveau
5029b5d815
Refactor compose.#Up definition to use docker.#Command
...
Add some feature to docker.#Command to :
- Copy artifact in the container
- Write files in the container
- Login to registries
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 16:56:28 +02:00
Tom Chauveau
f2d8cb39bd
Fix network error on docker-compose
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 16:56:28 +02:00
Tom Chauveau
b6c8ef34b0
Add docker-compose tests
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 16:56:28 +02:00
Tom Chauveau
9270168f17
Add docker-compose package in stdlib
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-25 16:56:28 +02:00
Solomon Hykes
d7a805f42b
stdlib: move all imports to alpha.dagger.io
...
Signed-off-by: Solomon Hykes <solomon@dagger.io>
2021-06-25 10:31:22 +00:00
Tom Chauveau
2e9a0d6509
Add test to universe
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-18 18:33:02 +02:00
Sam Alba
6422b4d36d
stdlib: cue fmt
...
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-06-15 10:47:39 +02:00
Sam Alba
9281967e16
stdlib: added package doc strings
...
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-06-15 10:46:56 +02:00
Tom Chauveau
b8a97fb6e7
Update docker.#Run definition and tests
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-12 12:04:47 +02:00
Tom Chauveau
8a2fc9aa72
Add docker.#Command tests
...
Tests :
- docker version with ssh
- docker version with ssh and key passphrase
- docker version with ass and wrong key passphrase
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-11 09:55:03 +02:00
Tom Chauveau
e540bd2716
Replace docker.#Client with docker.#Command definition
...
It's a simple wrapper that will expose an interface
to run any docker or docker-compose commands
You can configure :
- ssh
- environments
- mount volumes
- command to execute
- package to install
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-11 09:55:03 +02:00
Andrea Luzzardi
2acf0ce4e5
stdlib: docker: disable local #Run
...
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-06-07 16:33:10 -07:00
Andrea Luzzardi
ce5accd09c
stdlib: docker: support running containers on the local docker engine
...
Depends on #570
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-06-07 16:33:07 -07:00
Andrea Luzzardi
b805d37cb0
Merge pull request #557 from shykes/stdlib-cleanup
...
Universe: cleanup
2021-06-03 11:27:18 -07:00
Tom Chauveau
a39e87b179
docker.#Run now use secrets from dagger.#Secret
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-06-03 14:03:33 +02:00
Solomon Hykes
d96e4f5575
universe: docker: simplify
...
Signed-off-by: Solomon Hykes <solomon@dagger.io>
2021-06-03 10:44:10 +00:00
Tom Chauveau
4b6315e2fc
Handle fingerprint option for auth
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-05-29 18:29:39 +02:00
Tom Chauveau
7c4df827c3
Add docker.#Client definition
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-05-27 18:15:36 +02:00
Tom Chauveau
27a60d3cdf
Add tests for docker.#Run
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-05-27 18:15:36 +02:00
Tom Chauveau
f8760213bd
Add #Run definition in docker stdlib package.
...
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-05-27 18:15:36 +02:00