Vedant Koditkar
b96b5449e5
Merge branch 'v2' into 8768-avoid-pulling-same-image-multiple-times
2022-08-19 13:08:36 +05:30
Laura Brehm
fcfcc1524e
Apply compose model on `compose kill`, add `--remove-orphans`
...
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2022-08-19 04:26:08 +02:00
Nick Sieger
09e6b0292a
up/start/run: don't wait for disabled service
...
Signed-off-by: Nick Sieger <nick@nicksieger.com>
2022-08-17 12:32:10 -05:00
Nick Sieger
3c561e7017
create: pull all services logic out of loop; add DependsOn deps
...
Signed-off-by: Nick Sieger <nick@nicksieger.com>
2022-08-17 11:48:45 -05:00
Vedant Koditkar
817e875cbf
Merge branch 'v2' into 8768-avoid-pulling-same-image-multiple-times
2022-08-13 12:19:49 +05:30
Milas Bowman
27227a8824
lint: add `nolintlint` and clean up `nolint` directives ( #9738 )
...
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-08-09 16:43:58 -04:00
Milas Bowman
12ad0fddab
lint: run gofmt from Go 1.19 ( #9728 )
...
Fix comment formatting.
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-08-08 11:36:57 -04:00
Vedant Koditkar
e623b5ca1e
Merge branch 'v2' into 8768-avoid-pulling-same-image-multiple-times
2022-08-06 17:58:10 +05:30
Milas Bowman
1ee44a0acb
config: use correct YAML marshal func ( #9712 )
...
The `compose-spec/compose-go` lib is written with `gopkg.in/yaml.v2`
as a target.
When marshalling via CLI (`compose convert` / `compose config`), we
were using a _different_ YAML lib, which was a fork of `go-yaml`,
which is what `gopkg.in/yaml.v2` is based off of.
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-08-03 20:41:43 +00:00
Laura Brehm
be495ab8e6
Filter `compose ps` output by provided compose model
...
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2022-08-02 22:33:26 +02:00
Nicolas De Loof
f6e96dd783
if command is ran with a compose file, apply the compose model, not just project name
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-08-02 22:33:26 +02:00
Milas Bowman
765c071c89
up: do not stop dependency containers ( #9701 )
...
This keeps parity with v1, where only the containers explicitly
passed to `up` are torn down when `Ctrl-C` is hit, so any
dependencies that got launched (or orphan containers hanging
around) should not be touched.
Fixes #9696 .
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-08-02 15:25:59 -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
Sebastiaan van Stijn
9db79856be
update usage strings for consistency
...
This updates the format of various usage strings to be more consistent
with other parts of the CLI.
- Use `[OPTIONS]` to indicate where command-specific options should be added
- Use `[SERVICE...]` to indicate zero-or-more services
- Remove some usage strings for specific options (e.g. `-e NAME=VAL`), as that
option is part of the already mentioned `[OPTIONS]` and we don't provide usage
for each possible option that can be passed.
- Remove `[--]`, which (I think) was needed for the Python implementation, but is
a general feature to stop processing flag-options.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-08-02 13:32:29 +02:00
Jeremiah Millay
8d84a12333
Fix LinkLocalIPs in V2
...
Signed-off-by: Jeremiah Millay <jmillay@fastly.com>
2022-07-29 21:19:34 +02:00
Kenny Millington
1d678b70d9
config: ignore image for config hash generation ( #9350 )
...
Do not set Image so it does not impact the config-hash
Signed-off-by: Kenny Millington <kenny@kennynet.co.uk>
2022-07-29 14:01:52 -04:00
Guillaume Lours
6d613c8cb2
Merge pull request #9636 from ulyssessouza/dotenvfile-priority
...
Environment variables priority
2022-07-29 19:42:50 +02:00
Guillaume Lours
150fd4b8cf
use '-' as separator by default for image name
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-07-29 18:55:22 +02:00
Guillaume Lours
b49bd7c6ce
Merge pull request #9179 from ndeloof/no_build_image
...
as --no-build is set, set service image to default image name
2022-07-29 17:50:01 +02:00
Nicolas De Loof
abf5f736c7
as --no-build is set, set service image to default image name
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-07-29 17:41:53 +02:00
Robert Schumacher
f69dec2da8
Fixes #9403 : Remove Named Pipes from volumeMounts
...
If named pipe mounts are added to the volumeMounts mapping, the docker daemon will report an error that it cannot be mapped.
Signed-off-by: Robert Schumacher <ras0219@outlook.com>
2022-07-29 02:17:32 +02: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
c4b9ec6301
remove unused sessionConfig param for addSecretsConfig function
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-07-22 17:37:42 +02:00
Guillaume Lours
d85751f6d4
Merge pull request #9641 from glours/fix-volumes_from
...
keep the container reference when volumes_from target a container and not a service
2022-07-15 18:29:14 +02:00
Ulysses Souza
fc723acb3b
Fix nolint issues
...
Reference -> https://golangci-lint.run/usage/false-positives/#nolint-directive
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2022-07-13 19:33:06 +02:00
Ulysses Souza
96cbb1cbcf
Add "style" tag to gocritic
...
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2022-07-13 19:33:06 +02:00
Ulysses Souza
d42adf6efb
Add "opinionated" tag to gocritic
...
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2022-07-13 19:33:06 +02:00
Ulysses Souza
2e96829607
Add gocritic to linters
...
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2022-07-13 19:33:03 +02:00
Guillaume Lours
9fdd7d81b3
Merge pull request #9640 from glours/fix-close-network-name-issue
...
Fix issue with close networks name on up and down command
2022-07-13 10:46:13 +02:00
Guillaume Lours
f30f9d9692
keep the container reference when volumes_from target a container and not a service
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-07-12 13:17:46 +02:00
Pablo Rodriguez Quesada
eb06e1ca56
build.go: Access customLabels directly instead of by reference
...
Accesing the map directly instead of the copy value, otherwise the label doesn't get set.
Signed-off-by: Pablo Rodriguez <pablo.aarch64@gmail.com>
2022-07-11 08:52:23 -06:00
Guillaume Lours
50aa9750ee
check the exact network's name before creating or stopping it
...
NetworkList API doesn't return the extact name match, so we can retrieve more than one network with a request
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-07-11 12:17:22 +02:00
Vedant Koditkar
960453fa22
Merge branch 'v2' into 8768-avoid-pulling-same-image-multiple-times
2022-07-04 22:00:04 +05:30
Guillaume Lours
4debb133a7
add support of environment secret during build step
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-07-01 11:21:49 +02:00
Guillaume Lours
cd940693aa
Merge pull request #9049 from ndeloof/9044
...
(re)start should not impact one-off containers
2022-06-29 10:43:10 +02:00
Laura Brehm
96b152f705
Update logic to keep `compose stop` and `restart` from affecting one-offs
...
Also add e2e tests.
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2022-06-29 00:58:02 +02:00
Milas Bowman
8e7b6582d4
Merge pull request #9595 from abhinavnair/replace-ioutil
...
Replace deprecated ioutil pkg with os & io
2022-06-28 15:08:57 -04:00
Laura Brehm
3ccf4349e7
Merge pull request #9572 from laurazard/dont-wait-for-oneshots
...
Use appropriate dependency condition for one-shot containers when running `compose up --wait`
2022-06-26 14:48:49 +02:00
Abhinav Nair
11f2f2dbc4
Replace deprecated ioutil pkg with os & io
...
As of Go 1.16, the same functionality is now provided by package io or
package os, and those implementations should be preferred in new code.
So replacing all usage of ioutil pkg with io & os.
Signed-off-by: Abhinav Nair <11939846+abhinavnair@users.noreply.github.com>
2022-06-25 14:06:10 +08:00
Guillaume Lours
2cd9c0df5a
Merge pull request #9587 from milas/build-order-classic
...
build: respect dependency order for classic builder
2022-06-24 22:24:22 +02:00
Milas Bowman
5f89365c8f
network: make test mock consistent throughout
...
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-06-22 16:34:59 -04:00
Milas Bowman
b2cd089bae
build: respect dependency order for classic builder
...
When using the "classic" (non-BuildKit) builder, ensure that
services are iterated in dependency order for a build so that
it's possible to guarantee the presence of a base image that's
been added as a dependency with `depends_on`. This is a very
common pattern when using base images with Compose.
A fix for BuildKit is blocked currently until we can rely on a
newer version of the engine (see docker/compose#9324 )[^1].
[^1]: https://github.com/docker/compose/issues/9232#issuecomment-1060389808
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-06-22 16:24:30 -04:00
Milas Bowman
0f747419b6
networks: prevent issues due to duplicate names
...
Within the Docker API/engine, networks have unique IDs, and the
name is a friendly label/alias, which notably does NOT have any
guarantees around uniqueness (see moby/moby#18864 [^1]).
During day-to-day interactive/CLI Compose usage, this is rarely
an issue, as Compose itself isn't creating networks concurrently
across goroutines. However, if multiple Compose instances are
executed simultaneously (e.g. as part of a test suite that runs
in parallel), this can easily occur.
When it does happen, it's very confusing for users and resolving
it via the `docker` CLI is not straightforward either [^2].
There's two primary changes here:
* Pass `CheckDuplicates: true` to the Docker API when creating
networks to reduce the likelihood of Compose creating duplicates
in the first place
* On `down`, list networks using a name filter and then remove
them all by ID, as the Docker API will return an error if the
name alias is used and maps to more than one network
Hopefully, this provides a better UX, since the issue should be
less likely to occur, and if it does, it can now be resolved via
standard Compose workflow commands.
[^1]: https://github.com/moby/moby/issues/18864
[^2]: https://stackoverflow.com/questions/63776518/error-2-matches-found-based-on-name-network-nameofservice-default-is-ambiguo
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-06-22 12:27:30 -04:00
Laura Brehm
fd8538f780
Use appropriate dependency condition for one-shot containers when running `compose up --wait`
...
Also add e2e tests to ensure `compose up --wait` does not get stuck forever waiting for one-shot containers
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2022-06-18 01:20:40 +02:00
Milas Bowman
4ea3ba77b2
Merge pull request #9559 from venthur/fix_spell
...
fixed some spelling mistakes
2022-06-16 15:56:44 -04:00
Nicolas De Loof
005fc25823
add support for setting secret from env variable
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-06-15 17:06:48 +02:00
Bastian Venthur
8a5d555de7
fixed some spelling mistakes
...
that's all :)
Signed-off-by: Bastian Venthur <venthur@debian.org>
2022-06-14 21:33:36 +02:00
Guillaume Lours
e111b651b3
add deploy.resourses.limits.pids to the managed resources
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-06-13 17:21:48 +02:00
Guillaume Lours
638d78516a
parse deploy.resources.limit.cpus as float before converting
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-06-13 17:21:48 +02:00
Guillaume Lours
8862f95858
Merge pull request #9514 from ulyssessouza/fix-bindmounts
...
Fix bind mounts when in project volumes definition
2022-06-09 11:15:24 +02:00
Ulysses Souza
919f351b4b
Fix bind mounts when in project volumes definition
...
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2022-06-02 16:37:24 +02:00
Guillaume Lours
d5528f3a54
Merge pull request #9520 from milas/bugfix-network-ambiguity
...
fix: prevent network name ambiguity
2022-06-02 12:44:12 +02:00
Laura Brehm
81182fca53
Add links to container create request.
...
In v1, links were sent alongside the rest of the container create request, as part of `HostConfig`. In v2, links are usually set on the connect container to network request that happens after the create. However, this only happens if the service has one or more networks defined for it. If the services are configured to use the default bridge network, this request is not made and so links are never configured.
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2022-06-02 02:51:25 +02:00
Milas Bowman
7f32f02817
fix: prevent network name ambiguity
...
`NetworkInspect` will match a network ID by prefix. While rare,
it's possible that users might use a network name that is also
a valid network ID prefix for a pre-existing Docker network.
(In the reported case, the network was named `db`, for example.)
Fixes #9496 .
Signed-off-by: Milas Bowman <milas@tilt.dev>
2022-06-01 15:28:42 -04:00
Guillaume Lours
335decceda
Merge pull request #9504 from docker/nicksieger/9427
...
fix: bring up services with deps with --no-deps
2022-05-31 23:39:19 +02:00
Nick Sieger
cacff89cef
fix: bring up services with deps with --no-deps
...
Don't fail on not finding dependent services because they were put in the
disabled slice.
Fixes #9427 .
Signed-off-by: Nick Sieger <nick@nicksieger.com>
2022-05-31 16:19:21 -05: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
e806acce88
Merge pull request #9481 from glours/add-tags-to-build
...
add tags property to build section
2022-05-23 10:23:40 +02:00
Nicolas De Loof
8d03e29994
attach _only_ to services declared by project applying profiles
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-05-20 10:36:06 +02:00
Guillaume Lours
a2770b66ff
add tags property to build section
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-05-18 14:43:54 +02:00
Nicolas De Loof
65b827d08f
bump compose-go to 1.2.5
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-05-17 17:11:32 +02:00
Guillaume Lours
a603e27117
cp command from service to host: use the first container found to copy source on the host
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-05-10 10:50:40 +02:00
Guillaume Lours
a964d5587b
align cp command index management with exec command
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-05-10 10:50:40 +02:00
Guillaume Lours
a983cf551d
cp command: copy to all containers of a service as default behaviour
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-05-10 10:50:40 +02:00
Nicolas De Loof
78b06764a1
compose down exit=0 if nothing to remove
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-05-04 13:51:21 +02:00
Eric Fan
41b3967cb5
Fix cannot setup IPAM gateway
...
Signed-off-by: Eric Fan <ericfan@qnap.com>
2022-04-24 17:30:27 +02:00
Nicolas De Loof
00fd1c1530
inspect image ID after pull to se com.docker.compose.image
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-21 22:42:29 +02:00
Nicolas De Loof
0dffd5ba9f
add support for build.secrets
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-13 22:45:53 +02:00
Nicolas De Loof
e01687430e
when using `bind` API, use compose-go to (re)build volume string
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-13 22:45:53 +02:00
Nicolas De Loof
9668f600d1
project name MUST be lowercase
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-13 09:49:01 +02:00
Nicolas De Loof
672e2367fb
don't ignore error
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-12 16:00:36 +02:00
Nicolas De Loof
625a48dcf7
`pull` to respect pull_policy
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-12 07:59:58 +02:00
Nicolas De Loof
500555b834
linter
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-08 11:41:46 +02:00
Nicolas De Loof
e766352d81
include services declared by `links` as implicit dependencies
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-08 10:32:36 +02:00
Nicolas De Loof
db698562a9
use project we just created to start services
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-07 13:38:30 +02:00
Guillaume Lours
7fea9f7e8b
use project instead of DownOptions.project to list service images in pkg.compose.down
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-04-05 08:24:25 +02:00
Nicolas De Loof
c9fbb9ba9c
inspect container before attachment to use the adequate logic regarding TTY
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-04-04 14:39:38 +02:00
Guillaume Lours
f2d9acd3d4
use ssh config when building from compose up
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-04-04 10:16:28 +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
Ulysses Souza
56e48f8360
Fix down command without any resource to delete
...
A command down without any resource to delete was
trying to remove a default network that doesn't exist
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2022-03-31 18:30:29 +02:00
Guillaume Lours
ff73827a6f
Add support of ssh authentications defined in compose file or via cli flags
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-03-31 12:47:15 +02:00
Nicolas De Loof
890b6808a2
support cache_from|to|no|pull
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-28 09:36:24 +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
Guillaume Lours
d999c230a5
Merge pull request #9281 from ndeloof/down_volume_external
...
don't remove external volumes/networks
2022-03-14 17:21:04 +01:00
Nicolas De Loof
e7f545907b
don't remove external volumes/networks
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-14 15:24:49 +01:00
Guillaume Lours
730609b359
Merge pull request #9280 from ndeloof/kill
...
kill only need project name
2022-03-14 10:33:21 +01:00
Nicolas De Loof
cd8074d501
kill only need project name
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-14 10:26:36 +01:00
Nicolas De Loof
283f7a1ec5
Bump buildx to v0.8.0
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-11 14:05:55 +01:00
Nicolas De Loof
85a4d04096
recreate container after image has been rebuilt/pulled
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-10 11:02:48 +01:00
Nicolas De Loof
5e8040ea18
don't fail trying to remove container with no candidate
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-09 16:24:16 +01:00
Guillaume Lours
7036cda306
Merge pull request #9198 from ndeloof/dockerCli_stdout
...
composeService to use dockerCli's In/Out/Err streams
2022-03-09 14:36:07 +01:00
Nicolas De Loof
d8775c7a28
add support for device_cgroup_rules
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-09 11:39:20 +01:00
Nicolas De Loof
158b5ff6a3
build full compose model from resources, then filter by services
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-09 11:29:30 +01:00
Nicolas De Loof
8c7951465e
filter containers after project has been rebuilt from resources
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-08 09:47:22 +01:00
Nicolas De Loof
22b8c731c7
prevent getCanonicalContainerName to crash
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-07 14:58:39 +01:00
Guillaume Lours
0ef4b90fae
don't failed when trying to stop or rm services with no containers running
...
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-03-07 10:35:22 +01:00
Nicolas De Loof
dbe7de50a7
don't try to start dependencies when there are none
...
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-03-07 08:25:05 +01:00
Vedant Koditkar
89dfb9140e
Merge branch 'v2' into 8768-avoid-pulling-same-image-multiple-times
2022-03-05 21:53:55 +05:30
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