Laura Brehm
7781b7c992
deps: update docker/cli to fix go version selection issue
...
see: 70216b662d
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2023-12-19 14:15:16 +00:00
Nicolas De Loof
cda04f288e
adopt compose-go/v2
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-12-05 18:54:31 +01:00
Wes Higbee
56e2ad9ee5
update to v1.25 for RunAttach
...
Signed-off-by: Wes Higbee <wes.mcclure@gmail.com>
2023-12-05 17:02:37 +01:00
Guillaume Lours
b8773ad1c5
Merge pull request #11110 from ndeloof/wait_missing
...
fail start if depependency is missing
2023-10-19 10:04:32 +02:00
Nicolas De Loof
1ffa194e12
fail start if depependency is missing
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-10-19 09:50:37 +02:00
Nicolas De Loof
8af49ff369
resolve service reference into container based on observed state
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-09-14 15:29:50 +02:00
Nicolas De Loof
f6e31dbc6a
don't rely on depends_on to resolve volume_from, better use observed state
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-09-14 15:29:50 +02:00
Milas Bowman
1fdbcb6255
build: pass BuildOptions around explicitly & fix multi-platform issues
...
The big change here is to pass around an explicit `*BuildOptions` object
as part of Compose operations like `up` & `run` that may or may not do
builds. If the options object is `nil`, no builds whatsoever will be
attempted.
Motivation is to allow for partial rebuilds in the context of an `up`
for watch. This was broken and tricky to accomplish because various parts
of the Compose APIs mutate the `*Project` for convenience in ways that
make it unusable afterwards. (For example, it might set `service.Build = nil`
because it's not going to build that service right _then_. But we might
still want to build it later!)
NOTE: This commit does not actually touch the watch logic. This is all
in preparation to make it possible.
As part of this, a bunch of code moved around and I eliminated a bunch
of partially redundant logic, mostly around multi-platform. Several
edge cases have been addressed as part of this:
* `DOCKER_DEFAULT_PLATFORM` was _overriding_ explicitly set platforms
in some cases, this is no longer true, and it behaves like the Docker
CLI now
* It was possible for Compose to build an image for one platform and
then try to run it for a different platform (and fail)
* Errors are no longer returned if a local image exists but for the
wrong platform - the correct platform will be fetched/built (if
possible).
Because there's a LOT of subtlety and tricky logic here, I've also tried
to add an excessive amount of explanatory comments.
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2023-09-01 08:32:56 +02:00
Sebastiaan van Stijn
4eb43c53fa
pkg/compose: RunOneOffContainer: don't use NewStartOptions()
...
It's no longer used in docker/cli, and doesn't do anything other than
creating an empty struct, so replacing it (as we're planning to
deprecate that function)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-07-19 12:13:40 +02:00
Milas Bowman
10b290e682
up: fix race condition on network connect
...
Engine API only allows at most one network to be connected as
part of the ContainerCreate API request. Compose will pick the
highest priority network.
Afterwards, the remaining networks (if any) are connected before
the container is actually started.
The big change here is that, previously, the highest-priority
network was connected in the create, and then disconnected and
immediately reconnected along with all the others. This was
racy because evidently connecting the container to the network
as part of the create isn't synchronous, so sometimes when Compose
tried to disconnect it, the API would return an error like:
```
container <id> is not connected to the network <network>
```
To avoid needing to disconnect and immediately reconnect, the
network config logic has been refactored to ensure that it sets
up the network config correctly the first time.
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2023-06-29 16:00:55 -04:00
Nicolas De Loof
a2ce602f6c
fix race condition, waiting for containers when one exit
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-06-20 16:17:15 +02:00
Nicolas De Loof
c61b8aa5ac
introduce run --cap-add to run maintenance commands using service image
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-06-19 14:20:20 +02:00
Nicolas De Loof
fed8ef6b79
forward signal to container
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-05-31 15:10:11 +02:00
Nicolas De Loof
754c06886f
one off container name use configured Separator for naming
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-03-15 09:47:43 +01:00
Nicolas De Loof
b5f0a4eefa
use containers we expect to start for wait condition
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2023-02-07 16:36:45 +01:00
Guillaume Lours
5a2b7b83cd
use compose service methods when exist instead of directly service.dockerCli
...
Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
2023-01-13 21:02:00 +01:00
Guillaume Lours
279225896a
run: clean service command if entrypoint is overridden ( #9836 )
...
Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
2022-09-26 12:08:14 -04:00
ikedam
bbaaa6a9de
config: case-insensitive env vars on Windows ( #9438 )
...
Signed-off-by: IKEDA Yasuyuki <devld@ikedam.jp>
2022-08-02 14:56:09 -04:00
Ulysses Souza
e9c8cfcef3
Fix environment variables priority between environment and .env
...
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2022-07-28 12:57:44 +02:00
Guillaume Lours
a1b3f95709
add e2e tests to verify env variables priority
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-05-30 17:11:49 +02:00
Guillaume Lours
fcff36fc8a
now we use directly the Docker CLI to run autoremove flag should be pass as is
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-04-02 08:45:51 +02:00
Nicolas De Loof
c843d373de
restore TTY auto-detection using dockerCli.Out.IsTerminal
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-16 16:34:26 +01:00
Nicolas De Loof
1d4b4e3c8e
use docker/cli RunExec and RunStart to handle all the interactive/tty/* terminal logic
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-16 16:34:26 +01:00
Nicolas De Loof
f86f252a66
composeService to use dockerCli's In/Out/Err streams
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-03 16:34:57 +01:00
Nicolas De Loof
fb9310caf2
use CustomLabels for composeV2 metadata and not impact service hash
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-02-17 09:05:54 +01:00
Nicolas De Loof
4dafeb57a5
introduce run —quiet-pull to align with up
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-11-23 19:14:12 +01:00
Nicolas De Loof
f69a613e69
don't SetRawTerminal when run is ran with -T
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-11-18 12:40:08 +01:00
Nicolas De Loof
72e4519cbf
introduce up --wait condition
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-11-03 18:22:29 +01:00
Andreas Resios
e3204e7c4e
Actually fix #8811
...
The initial PR had the wrong boolean check. This commit addressed it.
fixes #8811
Signed-off-by: Andreas Resios <andrei.resios@gmail.com>
2021-10-21 09:18:08 +00:00
Andreas Resios
85ef72585d
Compose exec cannot process more than 32KB of data
...
Fixes #8811
Signed-off-by: Andreas Resios <andrei.resios@gmail.com>
2021-10-20 15:54:18 +00:00
Ulysses Souza
c2dd40c161
Fix network_mode "service:x"
...
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2021-10-14 10:40:44 +02:00
Nicolas De Loof
07b5512a68
`run` must attach to stdin
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-09-27 17:42:37 +02:00
Nicolas De Loof
e39ea13002
fix support for `compose run --label`
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-09-23 14:52:04 +02:00
Nicolas De Loof
18059295f7
waitForContainer to ensure stopped before remove
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-09-17 11:01:41 +02:00
aviau
21d3b19e57
compose/run: don't waitDependencies if NoDeps
...
Signed-off-by: aviau <alexandre@alexandreviau.net>
2021-09-16 11:09:44 +02:00
Nicolas De Loof
2ceb176500
support --entrypoint="" as override
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-09-08 10:39:08 +02:00
Nicolas De Loof
22ee74391a
don't create container with autoremove so we can inspect for exitcode
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-09-01 16:53:57 +02:00
Nicolas De Loof
81879c4f4b
update project's volumes_from before retrieving service
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-09-01 10:48:12 +02:00
Nicolas De Loof
1ae9b3cb5d
move compose-cli code into docker/compose/v2
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-08-31 19:09:19 +02:00
Nicolas De Loof
78faf0dc51
prepare volume for service set by `run`
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-08-30 09:45:43 +02:00
Nicolas De Loof
58bfbbb288
introduce ImageDigestLabel to track image built for service
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-08-25 10:03:51 +02:00
Nicolas De Loof
86eadc7d67
reduce complexity (linter)
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-07-23 15:20:53 +02:00
Nicolas De Loof
0b72b502d3
close container stream on os.stdin EOF
...
close https://github.com/docker/compose-cli/issues/1944
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-07-23 14:53:26 +02:00
Nicolas De Loof
c257001e5a
Restore support for control sequence in `compose run`
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-07-23 13:58:58 +02:00
Nicolas De Loof
96e1e041d6
distinguish stdout and stderr
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-07-02 10:53:11 +02:00
Nicolas De Loof
b6552cd935
add support for detach keys on compose run|exec
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-06-29 17:27:43 +02:00
Nicolas De Loof
c901edd65d
introduce `convergence` to hold per-service Containers and prevent race conditions
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-06-25 13:18:00 +02:00
Nicolas De Loof
852aae0a39
don't apply restart_policy on `compose run`
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-06-21 08:25:41 +02:00
Nicolas De Loof
49e7f2d45d
Move compose v2 implementation under pkg/compose with dependencies
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-06-15 15:52:48 +02:00