Skip to content

(refactoring) introduce monitor to manage containers events and application termination #12906

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 16, 2025

Conversation

ndeloof
Copy link
Contributor

@ndeloof ndeloof commented Jun 5, 2025

What I did
refactoring:

  • introduced monitor to dispatch container events and manage application termination
  • re-implemented cascade stop as a separate component, relying on event dispatch
  • re-implemented watchcontainer relying on event dispatch, removed from start and log
  • printer only focus on rendering application status, not trying to detect termination - uses explicit termination
  • removed useless pre-allocation of presenter (color) in printer. Will be set on first use.

improvement (2nd commit):
collecting start event, capture container's StartTime. This is used to collect logs using log API (we are too late to attach) and retrieve the very first logs. Tested using:

func main() {
        fmt.Println("Hello, World!")
        time.Sleep(10*time.Second)
}

Related issue

(not mandatory) A picture of a cute animal, if possible in relation to what you did
image

@ndeloof ndeloof force-pushed the refactoring_events branch 10 times, most recently from 38f188f to a1a3ba1 Compare June 12, 2025 09:23
@ndeloof ndeloof force-pushed the refactoring_events branch 2 times, most recently from 4725733 to 842aad6 Compare June 12, 2025 13:50
@ndeloof ndeloof marked this pull request as ready for review June 12, 2025 15:07
@ndeloof ndeloof requested a review from a team as a code owner June 12, 2025 15:07
@ndeloof ndeloof requested a review from glours June 12, 2025 15:07
@ndeloof ndeloof force-pushed the refactoring_events branch from 842aad6 to 4830d0a Compare June 12, 2025 15:07
@ndeloof ndeloof force-pushed the refactoring_events branch from 4830d0a to fa1bc3c Compare June 17, 2025 15:16
@ndeloof ndeloof force-pushed the refactoring_events branch from fa1bc3c to 017e1e8 Compare July 1, 2025 07:22
ndeloof added 2 commits July 15, 2025 14:45
…cation termination

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
@ndeloof ndeloof force-pushed the refactoring_events branch from 017e1e8 to d3551ad Compare July 15, 2025 13:23
Copy link
Contributor

@glours glours left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@glours glours merged commit 1c37f1a into docker:main Jul 16, 2025
50 of 51 checks passed
@renovate renovate bot mentioned this pull request Jul 24, 2025
1 task
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jul 28, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker/compose](https://github.com/docker/compose) | minor | `v2.38.2` -> `v2.39.1` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>docker/compose (docker/compose)</summary>

### [`v2.39.1`](https://github.com/docker/compose/releases/tag/v2.39.1)

[Compare Source](docker/compose@v2.39.0...v2.39.1)

#### What's Changed

🔧 Internal

- Add info about models usage to OpenTelemetry spans by [@&#8203;glours](https://github.com/glours) in docker/compose#13094

⚙️ Dependencies

- Bump compose-go to v2.8.1 by [@&#8203;glours](https://github.com/glours) in docker/compose#13096

**Full Changelog**: docker/compose@v2.39.0...v2.39.1

### [`v2.39.0`](https://github.com/docker/compose/releases/tag/v2.39.0)

[Compare Source](docker/compose@v2.38.2...v2.39.0)

#### What's Changed

##### ✨ Improvements

- Add `--since` & `--until` flags to `events` command by [@&#8203;jarqvi](https://github.com/jarqvi) in docker/compose#13030
- Feat(os): add FreeBSD support by [@&#8203;atagtm](https://github.com/atagtm) in docker/compose#13036
- Add `--models` flag to `config` command by [@&#8203;jarqvi](https://github.com/jarqvi) in docker/compose#13022
- Warn user `COMPOSE_BAKE=false` is deprecated by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13065
- Simpler stop UI by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13064
- Introduce build `provenance` and `sbom` attributes support by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13067
- Show build progress during watch rebuild by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13059

##### 🐛 Fixes

- Add dry-run support to bake build by [@&#8203;glours](https://github.com/glours) in docker/compose#13042
- Keep containers attached on stop to capture termination logs by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13010
- Add default compose labels to images built from bake by [@&#8203;glours](https://github.com/glours) in docker/compose#13049
- Fix report image name in bake result by [@&#8203;principis](https://github.com/principis) in docker/compose#13047
- Don't run navigation menu if stdin isn't a terminal by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13054
- Monitor must watch events even when context is cancelled by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13062
- Force `plain` display mode if stdout isn't a terminal by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13074
- Do not pass user id on Windows system as engine is not able to handel it by [@&#8203;glours](https://github.com/glours) in docker/compose#13080
- Forward git command error to user by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13084
- Use output registry when push true and load to docker store if not by [@&#8203;glours](https://github.com/glours) in docker/compose#13085

##### 🔧  Internal

- Add a space character to separate the timestamp from the log message by [@&#8203;xduugu](https://github.com/xduugu) in docker/compose#13038
- Fix the Helm bridge e2e tests after the latest update of the templates by [@&#8203;glours](https://github.com/glours) in docker/compose#13053
- Introduce monitor to manage containers events and application termination by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#12906
- Abstract model-cli commands execution with a model (pseudo) API by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13051
- Swarm by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13071
- Remove uses of `moby/errdefs` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in docker/compose#13076
- Use local copy of `pkg/system.IsAbs` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in docker/compose#13075
- Optimize ansiColorCode by replacing fmt.Sprintf with strings.Builder by [@&#8203;suwakei](https://github.com/suwakei) in docker/compose#13091
- Eliminate magic number in init functions by [@&#8203;suwakei](https://github.com/suwakei) in docker/compose#13090
- Integration of SetAttributes calls by [@&#8203;suwakei](https://github.com/suwakei) in docker/compose#13089

##### ⚙️ Dependencies

- Bump engine and cli to `v28.3.2` by [@&#8203;ndeloof](https://github.com/ndeloof) in docker/compose#13035
- Build(deps): bump github.com/spf13/pflag from `1.0.6` to `1.0.7` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in docker/compose#13060
- Bump `compose-go` to version `v2.8.0` by [@&#8203;glours](https://github.com/glours) in docker/compose#13082
- Build(deps): bump google.golang.org/grpc from `1.73.0` to `1.74.2` by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in docker/compose#13081
- bump buildx to `v0.26.1` by [@&#8203;glours](https://github.com/glours) in docker/compose#13086

#### New Contributors

- [@&#8203;atagtm](https://github.com/atagtm) made their first contribution in docker/compose#13036
- [@&#8203;xduugu](https://github.com/xduugu) made their first contribution in docker/compose#13038
- [@&#8203;principis](https://github.com/principis) made their first contribution in docker/compose#13047
- [@&#8203;suwakei](https://github.com/suwakei) made their first contribution in docker/compose#13091

**Full Changelog**: docker/compose@v2.38.2...v2.39.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants