Commit Graph

147 Commits

Author SHA1 Message Date
Guillaume Tardif 91083bc42c
Merge pull request #1001 from gtardif/compose_build_img_name
If compose file has a build section and no image name, build image with the right derived image tag
2020-12-02 13:16:03 +01:00
Guillaume Tardif 7b1a602fd4 If compose file has a build section and no image name, build image with the right derived image name (project_service), like docker-compose.
See awesome_compose/react-express-mongodb example

Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2020-12-02 12:05:59 +01:00
Guillaume Tardif 5258e3d56e Add compose build flags for file and working dir
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2020-12-02 10:35:28 +01:00
Nicolas De loof 6bf76eebb1
Merge pull request #991 from gtardif/compose_network_error
Compose network error
2020-12-01 18:31:43 +01:00
Nicolas De Loof a35147bc63
Detect push failure and break
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-12-01 16:26:01 +01:00
Nicolas De Loof 52574046f0
introduce `compose push` command
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-12-01 14:55:52 +01:00
Guillame Tardif b1970f618c Container networks: prefix network name only for internal networks or when name set (different from yaml key). No need to prefix again when connecting containers
Signed-off-by: Guillame Tardif <guillaume.tardif@gmail.com>
2020-12-01 10:03:18 +01:00
Guillame Tardif d24ffd97a0 Local compose error when external network not available
Signed-off-by: Guillame Tardif <guillaume.tardif@gmail.com>
2020-11-30 14:49:35 +01:00
Nicolas De Loof 5952183eca
introduce `compose build` command
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-30 12:43:38 +01:00
Djordje Lukic 1148ed8837 Add platform when running containers
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-11-30 11:51:46 +01:00
Guillame Tardif 4d1f265c62 Adding error progress indication when errors
Signed-off-by: Guillame Tardif <guillaume.tardif@gmail.com>
2020-11-27 18:18:14 +01:00
Guillame Tardif 7ddd8e5e97 Helper methods to create progress events, more homogeneous display for “creating”, “Created”, …
Signed-off-by: Guillame Tardif <guillaume.tardif@gmail.com>
2020-11-27 17:55:36 +01:00
Guillame Tardif 8b60c76684 Remove project network on compose down
Signed-off-by: Guillame Tardif <guillaume.tardif@gmail.com>
2020-11-27 17:42:29 +01:00
Guillaume Tardif 9b140930a7
Merge pull request #979 from docker/console
Don't start buildx' build with empty opts
2020-11-27 14:54:39 +01:00
Nicolas De Loof a542b5d37f
Don't start buildx' build with empty opts
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-27 14:18:06 +01:00
Guillame Tardif bc9099de9b Ensure images are pulled/build with build first, before creating networks / volumes and starting containers.
Will also avoid mixing build output and compose-cli progress display

Signed-off-by: Guillame Tardif <guillaume.tardif@gmail.com>
2020-11-27 13:52:58 +01:00
Nicolas De Loof b42b61e307
rename method for clarity
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-27 12:05:57 +01:00
Nicolas De Loof 3ff6923d2e
align coding-style with network labels
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-27 10:51:58 +01:00
Nicolas De Loof 49e653f142
unused context parameter
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-27 10:29:08 +01:00
Nicolas De Loof f65a0d3720
Create volume with labels
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-27 10:21:36 +01:00
Nicolas De Loof 646aca82d9
composeService to rely on apiClient
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-27 10:21:36 +01:00
Guillaume Tardif de3b6cb450 Add compose labels for composefiles
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-26 17:13:24 +00:00
Nicolas De loof f7905efc36
Merge pull request #960 from docker/build 2020-11-26 17:58:22 +01:00
Guillaume Tardif e441fbba5a Add compose labels for network
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-26 15:45:25 +01:00
Nicolas De Loof 0f4bcb9f17
Build and pull in parallel with BuildKit
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-26 14:11:40 +01:00
Nicolas De Loof a0b609a5dd
implement service image build by BuildKit
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-26 14:07:53 +01:00
Guillaume Tardif 24328c4620 Add container labels to improve compatibility with docker-compose
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-25 17:53:12 +01:00
Ulysses Souza 794a182bdd Avoid port collision with compose up test
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-11-24 11:10:17 -03:00
Ulysses Souza 8f8b97d031 Fix linter issues when running `make lint`
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-11-23 17:05:40 -03:00
Djordje Lukic 5ffdaa5cca Use json progress message
It contains the same output that `docker pull` shows

Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-11-23 10:00:13 +01:00
Djordje Lukic be40bdb032 Remove useless Done in the progress writer
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-11-22 17:30:28 +01:00
Djordje Lukic 5cf5410bc8 Detect cycles
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-11-21 23:58:12 +01:00
Djordje Lukic 1f43b83409 Use a dependency graph to start services
The algorithm is like so:
* get all the leaves of the graph, these are all the service that don't have any dependency
* once a service is started we take the list of its parents (dependents)
* if all the dependencies of each of those dependents are started then we can start it as well
* if not then we continue to the next dependent

Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-11-21 22:30:32 +01:00
Guillaume Tardif aa534979bc First local compose e2e tests
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-20 18:06:11 +01:00
Nicolas De Loof 98cc5cc1eb
Fix processing dependency graph only onces per node
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-20 17:56:27 +01:00
Nicolas De loof b3f406f410
Merge pull request #924 from docker/dependecy_order 2020-11-20 15:45:15 +01:00
Nicolas De Loof eeb09d9e80
apply linter recommendations
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-19 17:35:34 +01:00
Nicolas De Loof e7284e76e9
Process services in dependency order as a graph
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-19 17:31:58 +01:00
Guillaume Tardif ff84803546 compose ps implementation
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-19 13:34:43 +01:00
Nicolas De Loof 7c7e75ca00
Ensure extensions map is not nil (should be set by compose-go)
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-19 13:10:55 +01:00
Nicolas De Loof 251c52664a
Implement service_healthy dependency condition
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-19 13:10:55 +01:00
Nicolas De Loof adb62e9080
Run convergence in service dependency order
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-19 13:10:13 +01:00
Guillaume Tardif 9f594abd85 Local compose ls implementation
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-19 09:48:54 +01:00
Guillaume Tardif 51142827e7 Fix linter errors
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-18 17:18:41 +01:00
Nicolas De Loof eb60bbb74f
define const for labels
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 15:56:39 +01:00
Nicolas De Loof 2278370ffa
Handle service scale with container numbering
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 15:15:27 +01:00
Guillaume Tardif da99ad40d5 Fix logs (concurrent access to container.ID, logs was displaying the first container logs for every container)
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-17 15:13:36 +01:00
Nicolas De Loof a701fd7601
Negociate API version with docker engine
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 13:44:51 +01:00
Nicolas De Loof 46cbb908fe
Target docker/docker 19.03 branch (api 1.40)
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 13:28:58 +01:00
Nicolas De Loof 6346db1d6f
Move reconciliation logic into convergence.go
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 11:31:14 +01:00
Nicolas De Loof 8310bb2a91
Create services in dependency order
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 11:31:14 +01:00
Djordje Lukic 744aebc3fd
"Already exists" also means the pull finished
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-11-17 11:31:14 +01:00
Djordje Lukic b0ee6d285a
Update docker/docker to be able to run this on a Mac, use goroutines when starting a stack
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-11-17 11:31:13 +01:00
Nicolas De Loof 9fdf69ea9c
Handle container (re)create/(re)start on compose up
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 11:29:12 +01:00
Nicolas De Loof 0d33e5cdcc
report docker resources creation in progress
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 11:28:50 +01:00
Nicolas De Loof 7944a1b94f
implement image pull on `compose up` with progress
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 11:28:49 +01:00
Nicolas De Loof 74de423cc3
reuse ECS logConsumer to implement formatted compose log output
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 11:28:08 +01:00
Nicolas De Loof 3f52508efe
Skeletton implementation for compose commands
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 11:28:08 +01:00
Nicolas De Loof 85ec312461
convert compose model into moby API types to prepare "up" local implementation
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-17 11:28:08 +01:00
Chris Crone 74a27541e4 backend.local: Add volume e2e test
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 15:50:28 +01:00
Chris Crone db3a14694b backend.local: Add command support
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 10:43:04 +01:00
Chris Crone 42eb0ecc35 backend.local: Add rudimentary volume support
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 09:54:29 +01:00
Chris Crone 637dd263c9 backend.local: Refactor container service
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 09:54:29 +01:00
Chris Crone b2dcae685a backend.local: Add restart policy support to run
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 09:54:29 +01:00
Chris Crone b8adb4b3dd backend.local: Refactor conversion code
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 09:54:29 +01:00
Chris Crone 6a9eca9bdf backend.local: Add memory limits
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 09:54:29 +01:00
Chris Crone 47aa069a3d backend.local: Add CPU limits
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 09:54:29 +01:00
Chris Crone 42f31d3129 backend.local: Improve inspect
* Add restart policy
* Add environment
* Add labels
* Add auto remove

Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 09:54:29 +01:00
Chris Crone dce884d5c8 backend.local: Set environment on run
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-04 09:54:29 +01:00
Chris Crone 25e6a18fef backend: Add --rm support to local backend
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-10-30 18:19:02 +01:00
Guillaume Tardif 7cf7b00584 Add ResourceService definition and ACI NOOP implementation
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-14 15:40:24 +02:00
Chris Crone d154c41586 Update copyright
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-09-22 12:13:00 +02:00
Guillaume Tardif 08562b403e Connecting it all
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 15:30:50 +02:00
Guillaume Tardif 9ed06ece5b Adding volume API & initial CLI command
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 15:30:50 +02:00
Guillaume Tardif d06aa2827f Move containers, compose, secrets to /api
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-07 13:22:08 +02:00
Ulysses Souza 15066ce999 Add 'kill' command
- On ACI that's implemented as a stop,
since ACI does not implement a kill

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-09-04 02:57:54 +02:00
Guillaume Tardif ad5c465bd1
Merge pull request #485 from docker/repo-rename
Rename docker/api -> docker/compose-cli
2020-08-25 15:58:51 +02:00
Guillaume Tardif 981665b02c Better renaming
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-24 16:09:20 +02:00
Guillaume Tardif 2bac8cf94e Fix linter
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-21 21:28:15 +02:00
Guillaume Tardif da6334f415 Renaming, expect commands to succeed by default (removed a bunch of res.Assert(success) )
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-21 18:45:38 +02:00
Chris Crone 4c6280b0e9 Rename docker/api -> docker/compose-cli
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-08-21 17:28:39 +02:00
Nicolas De Loof 6e6a11aa73
Introduce Secrets API
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-18 09:43:15 +02:00
Djordje Lukic 1a3182fb7f Implement `docker start` for ACI 2020-08-12 14:50:47 +02:00
Djordje Lukic 093a69136f Add --force to rm on ACI
If a container is running the user must force the removal of the
container.
2020-08-11 16:30:42 +02:00
Chris Crone 017053e19a tests.e2e: Refactor
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-08-10 14:12:46 +02:00
Djordje Lukic ef2d304762 Allow non-interactive exec on ACI
If the request is for a non-interactive exec we don't attach the stdin
when executing.
2020-07-09 11:47:22 +02:00
Guillaume Tardif 7296290408 Add ”Platform” in docker inspect result, showing container OS (this field is used by VSCode) 2020-07-06 12:16:02 +02:00
Guillaume Tardif 5eea111ecf Run containers and attach to logs by default, detach with -d option 2020-07-02 16:45:04 +02:00
Djordje Lukic ad72c866cc Add license headers 2020-06-18 16:48:03 +02:00
Guillaume Tardif 34d01012e4 Relax constraints on flaky tests (due to // runs) 2020-06-17 08:58:24 +02:00
Guillaume Tardif 9257d0ff49
Merge pull request #205 from ulyssessouza/inspect
Add inspect command
2020-06-16 09:33:33 +02:00
Djordje Lukic a80653c27c
Merge pull request #219 from rumpl/chore-build-without-backends
Build example and local backend conditionaly
2020-06-15 12:24:40 -07:00
Djordje Lukic 39042aa8bd Build example and local backend conditionaly
* `make` will build the cli with all backends exnabled
* `make cross` will cross build without the example and local backend

You can still cross compile with all backends by doing

```console
$ BUILD_TAGS=example,local make cross
```

Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-06-15 18:02:30 +02:00
Ulysses Souza 1039c5ed94 Add tests on inspect
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-06-15 17:20:37 +02:00
Guillaume Tardif eb505ecd75 Add -f option to force remove current context and switch to default if required 2020-06-15 16:28:43 +02:00
Ulysses Souza 96bc1ca6f1 Add inspect command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-06-15 15:08:04 +02:00
Guillaume Tardif 0de2522079 Renamed Moby backend to “local” backend. This will leave “moby” available for default type contexts 2020-06-15 12:20:03 +02:00