Skip to content

Conversation

@ndeloof
Copy link
Contributor

@ndeloof ndeloof commented Nov 10, 2025

What I did

fixed run and attach commands to handle detach keys as configured in CLI config
introduced 'd' Detach entry in navigation menu to detach from containers.

how to test

services:
  test:
    image: alpine
    command: ping localhost

run docker compose up. Hit d for detach menu entry. Compose should exit immediately, but container is still running:

$ docker ps
CONTAINER ID   IMAGE     COMMAND            CREATED          STATUS          PORTS     NAMES
b2cc5fb6988d   alpine    "ping localhost"   44 seconds ago   Up 18 seconds             truc-test-1

attach to container, hit detach key sequence ("detachKeys" in CLI config.json)

$ docker compose attach test
64 bytes from ::1: seq=412 ttl=64 time=0.278 ms
read escape sequence
$ 

check container is still running
run a one-off container, and test escape sequence:

$ docker compose run test
Container truc-test-run-1de59523f52e Creating 
Container truc-test-run-1de59523f52e Created 
PING localhost (::1): 56 data bytes
64 bytes from ::1: seq=0 ttl=64 time=0.024 ms
64 bytes from ::1: seq=1 ttl=64 time=0.214 ms
64 bytes from ::1: seq=2 ttl=64 time=0.199 ms
$

check container is still running:

$ docker ps
CONTAINER ID   IMAGE     COMMAND            CREATED          STATUS          PORTS     NAMES
170d8912fb3b   alpine    "ping localhost"   37 seconds ago   Up 37 seconds             truc-test-run-1de59523f52e

Related issue
fixes #12594

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

@ndeloof ndeloof requested a review from a team as a code owner November 10, 2025 10:09
@ndeloof ndeloof requested a review from glours November 10, 2025 10:09
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 + tests ok 👌

@glours glours merged commit 6e55832 into docker:main Nov 12, 2025
24 checks passed
@ndeloof ndeloof deleted the detachKeys branch November 12, 2025 14:36
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Dec 12, 2025
⚠️ **CAUTION: this is a major update, indicating a breaking change!** ⚠️

This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker/compose](https://github.com/docker/compose) | major | `v2.40.3` -> `v5.0.0` |

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>

### [`v5.0.0`](https://github.com/docker/compose/releases/tag/v5.0.0): &quot;Mont Blanc&quot;

[Compare Source](docker/compose@v2.40.3...v5.0.0)

![mont blanc](https://github.com/user-attachments/assets/1e6b938e-e67a-4063-b1d0-0f225da01521)

Major changes in this release:

- Compose can now officially be used as a SDK to be integrated into third-party softwares
- Internal builder has been removed, build is delegated to Docker Bake (same as `docker build` command)

#### Why "v5" ?

We decided to skip `3.0.0` for next major release after docker Compose v2 to prevent (more) confusion with the obsolete docker-compose file versions `2.x` and `3.x` inherited from Docker Compose v1. We also skipped `4.0.0` to have a clear separation with this legacy.

#### What's Changed

##### ✨ Improvements

- drop support for internal buildkit builder by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13056](docker/compose#13056)
- Setup Compose service using functional parameters by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13312](docker/compose#13312)
- Introduce abstractions to support SDK usage without requiring Docker CLI by [@&#8203;glours](https://github.com/glours) in [#&#8203;13313](docker/compose#13313)
- configure Compose service with io.Reader and io.Writer by [@&#8203;glours](https://github.com/glours) in [#&#8203;13322](docker/compose#13322)
- Make progress Writer a CLI component by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13316](docker/compose#13316)
- SDK docs by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13350](docker/compose#13350)
- document support for OCI and Git remote resources by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13362](docker/compose#13362)
- run hooks on restart by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13321](docker/compose#13321)
- fix(run): Ensure images exist only for the target service in run command by [@&#8203;idsulik](https://github.com/idsulik) in [#&#8203;13325](docker/compose#13325)
- Add load project to api definition by [@&#8203;glours](https://github.com/glours) in [#&#8203;13329](docker/compose#13329)
- introduce --insecure-registry, reserved for testing purpose by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13355](docker/compose#13355)
- Move progress package to cmd as a command line component by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13357](docker/compose#13357)
- Added support for `build.no_cache_filter` by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13377](docker/compose#13377)
- add --wait option to start command by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13409](docker/compose#13409)

##### 🐛 Fixes

- fix OCI compose override support by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13311](docker/compose#13311)
- Fix help output for "exec --no-tty" option by [@&#8203;tonyo](https://github.com/tonyo) in [#&#8203;13314](docker/compose#13314)
- fix typo in error message by [@&#8203;stasadev](https://github.com/stasadev) in [#&#8203;13328](docker/compose#13328)
- disable progress UI when build is ran with --print by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13351](docker/compose#13351)
- add (restore) support for detach keys by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13369](docker/compose#13369)
- images command should display image Created time or N/A if not available by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13376](docker/compose#13376)
- Fix support for port range by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13381](docker/compose#13381)
- skip includes preparing publish by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13400](docker/compose#13400)
- feat(model): ignore runtime flags in model configuration by [@&#8203;ilopezluna](https://github.com/ilopezluna) in [#&#8203;13404](docker/compose#13404)

##### 🔧  Internal

- Next release will be major version v5.x by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13375](docker/compose#13375)
- Test to check writeComposeFile detects invalid OCI artifact by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13309](docker/compose#13309)
- Code Cleanup by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13315](docker/compose#13315)
- fix various linting issues by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13326](docker/compose#13326)
- Making the American/British spellings consistent to the error messages by [@&#8203;JLesDev](https://github.com/JLesDev) in [#&#8203;13366](docker/compose#13366)
- gha: test against docker v29, v28, and rename checks to use `stable`, `oldstable` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13380](docker/compose#13380)
- refactor: replace Split in loops with more efficient SplitSeq by [@&#8203;vicerace](https://github.com/vicerace) in [#&#8203;13393](docker/compose#13393)
- refactor: use strings.Builder to improve performance by [@&#8203;liuyueyangxmu](https://github.com/liuyueyangxmu) in [#&#8203;13398](docker/compose#13398)
- Fix grammar: change 'adopted' to 'adopt' in Docker Swarm note by [@&#8203;rashmivagha](https://github.com/rashmivagha) in [#&#8203;13407](docker/compose#13407)
- golangci-lint: use gci formatter instead of goimports by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13406](docker/compose#13406)
- refactor: replace interface{} with any for clarity and modernization by [@&#8203;zjumathcode](https://github.com/zjumathcode) in [#&#8203;13411](docker/compose#13411)

##### ⚙️ Dependencies

- Bump compose go to v2.10.0 by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13410](docker/compose#13410)
- build(deps): bump github.com/containerd/platforms from 1.0.0-rc.1 to 1.0.0-rc.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13353](docker/compose#13353)
- build(deps): bump github.com/docker/docker from 28.5.1+incompatible to 28.5.2+incompatible by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13361](docker/compose#13361)
- build(deps): bump github.com/containerd/containerd/v2 from 2.1.4 to 2.2.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13358](docker/compose#13358)
- build(deps): bump github.com/docker/cli from 28.5.1+incompatible to 28.5.2+incompatible by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13360](docker/compose#13360)
- build(deps): bump golang.org/x/sys from 0.37.0 to 0.38.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13367](docker/compose#13367)
- build(deps): bump golang.org/x/sync from 0.17.0 to 0.18.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13368](docker/compose#13368)
- Dockerfile: update golangci-lint to v2.6.2 by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13370](docker/compose#13370)
- build(deps): bump buildx v0.30.0, buildkit v0.26.0, otel v1.38.0, otel/contrib v0.63.0 by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13379](docker/compose#13379)
- bump dependencies by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13392](docker/compose#13392)
- build(deps): bump github.com/hashicorp/go-version from 1.7.0 to 1.8.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13403](docker/compose#13403)
- build(deps): bump golang.org/x/crypto v0.45.0 by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13405](docker/compose#13405)

#### New Contributors

- [@&#8203;tonyo](https://github.com/tonyo) made their first contribution in [#&#8203;13314](docker/compose#13314)
- [@&#8203;stasadev](https://github.com/stasadev) made their first contribution in [#&#8203;13328](docker/compose#13328)
- [@&#8203;JLesDev](https://github.com/JLesDev) made their first contribution in [#&#8203;13366](docker/compose#13366)
- [@&#8203;vicerace](https://github.com/vicerace) made their first contribution in [#&#8203;13393](docker/compose#13393)
- [@&#8203;liuyueyangxmu](https://github.com/liuyueyangxmu) made their first contribution in [#&#8203;13398](docker/compose#13398)
- [@&#8203;ilopezluna](https://github.com/ilopezluna) made their first contribution in [#&#8203;13404](docker/compose#13404)
- [@&#8203;rashmivagha](https://github.com/rashmivagha) made their first contribution in [#&#8203;13407](docker/compose#13407)
- [@&#8203;zjumathcode](https://github.com/zjumathcode) made their first contribution in [#&#8203;13411](docker/compose#13411)

**Full Changelog**: <docker/compose@v2.40.2...v5.0.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:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC40IiwidXBkYXRlZEluVmVyIjoiNDIuMzAuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
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.

[BUG] Unable to detach docker compose up after upgrading docker client

2 participants