Commit Graph
131 Commits
Author SHA1 Message Date
blackflytech ff711700cd Fix grammar in Attestations field comment
Signed-off-by: blackflytech <[email protected]>
2026-07-06 10:36:46 +02:00
Guillaume Lours 9eb8966705 fix: provider output handling and watch rebuild re-invocation
Provider info and error messages containing newlines broke the TTY
progress display (timer drifting to a new line, broken cursor
movement). Extract only the first line for progress events via
firstLine(). Full messages remain available through the provider's
own debug message type.

Skip provider services during watch rebuild convergence by adding a
SkipProviders flag to CreateOptions, set only by the watch rebuild
path. This prevents unnecessary re-invocation of providers on every
file change while preserving normal provider execution for all other
commands (up, create, run, scale).

Signed-off-by: Guillaume Lours <[email protected]>
2026-04-14 11:43:48 +02:00
Sebastiaan van Stijn bfb5511d0d go.mod: bump github.com/moby/moby/api v1.53.0, moby/client v0.2.2
Also update TestDefaultNetworkSettings:
Test that the network with the highest priority is returned as
"primary" network, and other networks as extra networks.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
2026-02-11 12:32:37 +01:00
Nicolas De Loof d7e5f20eb6 images command should display image Created time or N/A if not available
Signed-off-by: Nicolas De Loof <[email protected]>
2025-11-13 09:40:56 +01:00
Jonty dc90c4e44d Grammatical fix
Signed-off-by: Jonty <[email protected]>
2025-11-10 11:34:18 +01:00
Jonty 91e1753d80 Grammatical fix
Signed-off-by: Jonty <[email protected]>
2025-11-10 11:34:18 +01:00
Jonty 9db27a65c6 Making the American/British spellings consistent to the error messages
Signed-off-by: Jonty <[email protected]>
2025-11-10 11:34:18 +01:00
Nicolas De Loof 7eb5adeef6 introduce --insecure-registry, reserved for testing purpose
Signed-off-by: Nicolas De Loof <[email protected]>
2025-11-06 16:17:21 +01:00
Nicolas De Loof fc2a7d13fa from Compose CLI, we know the streams used to configure LogConsumer
Signed-off-by: Nicolas De Loof <[email protected]>
2025-11-04 10:25:14 +01:00
Guillaume Lours d74274bc04 Add LoadProject method to Compose SDK API
This commit adds a new LoadProject method to the Compose service API,
allowing SDK users to programmatically load Compose projects with full
control over the loading process.

Changes:

1. New API method (pkg/api/api.go):
   - LoadProject(ctx, ProjectLoadOptions) (*types.Project, error)
   - ProjectLoadOptions struct with all loader configuration
   - LoadListener callback for event notifications (metrics, etc.)
   - ProjectOptionsFns field for compose-go loader options

2. Implementation (pkg/compose/loader.go):
   - createRemoteLoaders: Git and OCI remote loader setup
   - buildProjectOptions: Translates ProjectLoadOptions to compose-go options
   - postProcessProject: Service filtering, labels, resource pruning

3. Unit test (pkg/compose/loader_test.go):
   - Tests basic project loading functionality
   - Verifies ProjectOptionsFns with cli.WithoutEnvironmentResolution

4. Mock update (pkg/mocks/mock_docker_compose_api.go):
   - Added LoadProject to mock interface

Key design decisions:
- LoadListener pattern keeps metrics collection in CLI, not SDK
- ProjectOptionsFns exposes compose-go options directly (e.g., cli.WithInterpolation(false))
- Post-processing in SDK: labels, service filtering, resource pruning
- Environment resolution NOT in SDK (command responsibility)
- Compatibility mode handling (api.Separator)

Signed-off-by: Guillaume Lours <[email protected]>
2025-11-03 08:58:30 +01:00
Guillaume Lours 3658a063bb add AlwaysOkPrompt to replace 'AlwaysYes' current implementation'
Signed-off-by: Guillaume Lours <[email protected]>
2025-11-03 08:01:59 +01:00
Guillaume Lours 86e91e010d Add streamOverrideWrapper to intercepts command.Cli stream methods and transparently returns custom streams when provided via options
Add new GetConfiguredStreams function to Compose API definition

Signed-off-by: Guillaume Lours <[email protected]>
2025-10-27 16:17:50 +01:00
Nicolas De Loof 7f668bd7fe Setup Compose service using functional parameters
This commit introduces WithMaxConcurrency and WithDryRun to replace direct mutators on composeService
commands and flags are translated into a set of functional parameters which are eventually applied
as a ComposeService is created just before being actually used by a command

Signed-off-by: Nicolas De Loof <[email protected]>
2025-10-24 18:24:21 +02:00
Nicolas De Loof 9b4fcce034 introduce WithPrompt to configure compose backend to use a plugable UI component for user interaction
Signed-off-by: Nicolas De Loof <[email protected]>
2025-10-22 16:14:55 +02:00
Nicolas De Loof 07602f2070 publish Compose application as compose.yaml + images
Signed-off-by: Nicolas De Loof <[email protected]>
2025-10-03 10:59:57 +02:00
Nicolas De Loof a473341058 volume ls command can run without a project
Signed-off-by: Nicolas De Loof <[email protected]>
2025-09-10 09:41:47 +02:00
Kian Eliasi 6078b4d99d Fix: use image created time when last tag time is not present
Signed-off-by: Kian Eliasi <[email protected]>
2025-08-27 09:03:58 +02:00
Nicolas De Loof fd954f266c show build progress during watch rebuild
Signed-off-by: Nicolas De Loof <[email protected]>
2025-07-23 13:57:46 +02:00
Nicolas De Loof 8f91793fb5 introduce build.provenance and sbom support
Signed-off-by: Nicolas De Loof <[email protected]>
2025-07-21 17:07:41 +02:00
Nicolas De Loof 1c37f1abb6 use logs API with Since to collect the very first logs after restart
Signed-off-by: Nicolas De Loof <[email protected]>
2025-07-16 17:24:11 +02:00
Nicolas De Loof 485b6200ee (refactoring) introduce monitor to manage containers events and application termination
Signed-off-by: Nicolas De Loof <[email protected]>
2025-07-16 17:24:11 +02:00
MohammadHasan AkbariandAmin Ehterami 35efa97b7d feat: add since & until flags to events command
Signed-off-by: MohammadHasan Akbari <[email protected]>
Co-authored-by: Amin Ehterami <[email protected]>
2025-07-09 10:08:33 +02:00
Leonardo Peregrino 3a7982fe45 add service filter to volumes command
Signed-off-by: Leonardo Peregrino <[email protected]>
2025-06-30 19:38:27 +02:00
Leonardo Peregrino 5430caa172 add volumes command
Signed-off-by: Leonardo Peregrino <[email protected]>
2025-06-30 19:38:27 +02:00
Nicolas De Loof 276c229458 move run logic inside backend
Signed-off-by: Nicolas De Loof <[email protected]>
2025-06-13 14:43:16 +02:00
Nicolas De Loof 9b67a48c33 (refactoting) Move watch logic into a dedicated Watcher type
Signed-off-by: Nicolas De Loof <[email protected]>
2025-06-05 16:48:05 +02:00
Nicolas De Loof eb3074bbda include platform and creation date listing image used by running compose application
Signed-off-by: Nicolas De Loof <[email protected]>
2025-06-02 16:07:24 +02:00
tongjicoder 2e71440bee refactor: use slices.Contains to simplify code
Signed-off-by: tongjicoder <[email protected]>
2025-05-27 11:45:26 +02:00
Guillaume Lours 7e198ee6a3 remove provenance build flag for now
Signed-off-by: Guillaume Lours <[email protected]>
2025-05-20 18:21:05 +02:00
Guillaume Lours 0566431c64 only use attestation when building image outside the development inner loop
when building a image, by default attestation are generated and modify the image ID which trigger a container recreation on up, run command even if there isn't any changes on the image content itself

Signed-off-by: Guillaume Lours <[email protected]>
2025-05-20 18:21:05 +02:00
Guillaume Lours 944e5e67a1 do not throw an error on build with provider services
Signed-off-by: Guillaume Lours <[email protected]>
2025-05-16 17:47:09 +02:00
Nicolas De Loof 16e83f002d introduce build --check
Signed-off-by: Nicolas De Loof <[email protected]>
2025-05-06 07:54:30 +02:00
Nicolas De Loof 75368c7859 introduce build --print to dump equivalent bakefile
Signed-off-by: Nicolas De Loof <[email protected]>
2025-03-26 12:24:31 +01:00
Dominik Menke f70209cf15 review: move Summary/Replica collection from cmd/ to pkg/
Signed-off-by: Dominik Menke <[email protected]>
2025-03-13 14:23:51 +01:00
Dominik Menke 375a279785 top: expose container labels
Signed-off-by: Dominik Menke <[email protected]>
2025-03-13 14:23:51 +01:00
Nicolas De Loof 6c1ee1069b support refresh pull policy
Signed-off-by: Nicolas De Loof <[email protected]>
2025-02-25 17:05:23 +01:00
Nicolas De Loof 5e2abb6c26 support additional_context reference to another service
Signed-off-by: Nicolas De Loof <[email protected]>
2025-02-03 17:23:35 +01:00
Guillaume Lours 806ac91cf6 add warning when trying to publish env variables with OCI artifact
Signed-off-by: Guillaume Lours <[email protected]>
2025-01-30 17:37:07 +01:00
Guillaume Lours 840288895e add --with-env flag to publish command
this flag allow publishing env variables in the Compose OCI artifact

Signed-off-by: Guillaume Lours <[email protected]>
2025-01-29 15:45:00 +01:00
Nicolas De Loof 4b70ff0ccd fix support for ssh key from CLI flags
Signed-off-by: Nicolas De Loof <[email protected]>
2025-01-29 11:28:41 +01:00
Sebastiaan van Stijn 446e00520c format code with gofumpt
Format the code  with gofumpt to prevent my IDE from reformatting
every time I open a file. gofumpt provides a superset of gofmt,
so should not impact users that are not using gofumpt.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
2024-12-17 16:50:14 +01:00
Nicolas De Loof 8e0520e71e prompt user to confirm volume recreation
Signed-off-by: Nicolas De Loof <[email protected]>
2024-12-12 19:11:00 +01:00
MohammadHasan Akbari 9eaba55973 feat: add commit command
Signed-off-by: MohammadHasan Akbari <[email protected]>
2024-11-27 07:39:46 +01:00
Guillaume Lours 51ebeb5441 introduce generate command as alpha command
Signed-off-by: Guillaume Lours <[email protected]>
2024-10-28 17:00:59 +01:00
Guillaume Lours 26064d4b60 allow usage of -f flag with oci Compose artifact
Signed-off-by: Guillaume Lours <[email protected]>
2024-10-25 17:36:04 +02:00
Nicolas De Loof 82b41b9ebd introduce service hooks
Signed-off-by: Nicolas De Loof <[email protected]>
2024-10-07 16:06:41 +02:00
MohammadHasan Akbari b9d0c77cde feat: add export command
Signed-off-by: MohammadHasan Akbari <[email protected]>
2024-10-02 21:15:59 +02:00
Nathan Baulch 524a97e553 Fix typos
Signed-off-by: Nathan Baulch <[email protected]>
2024-09-11 11:21:24 +02:00
Suleiman Dibirov 9549a213ba feat(watch): Add --prune option to docker-compose watch command
Signed-off-by: Suleiman Dibirov <[email protected]>
2024-07-02 08:16:09 +02:00
Jaime Soriano Pastor 5c1e5f3fc7 docker compose up always kills the containers on second Ctrl-C
Kill executed on the second Ctrl-C of docker compose up  was
filtering containers depending on its state. In some cases the
containers can reach an state for what these filters don't get
any container, and the command keeps reporting `no container to
kill`.

Remove this filtering, so it tries to kill any container it
finds, independently of its state.

Fixes https://github.com/docker/compose/issues/10661

Signed-off-by: Jaime Soriano Pastor <[email protected]>
2024-04-14 17:44:39 +02:00