Uh oh!
There was an error while loading. Please reload this page.
feat(compose): add persistent Docker Compose support - #2123
Conversation
stephenlclarke
commented
Aug 18, 2026
Nice approach. Could the top-level docs make the dependency boundary explicit: Docker Desktop and a host Docker install aren’t required, but the plugin provisions Docker Engine/Compose inside the managed machine (and builds that image on first use)? That distinction will help set expectations. |
- share boot initialization with specialized machine consumers - persist ownership metadata and runtime profile settings - add safe socket publication and orphan cleanup - preserve default-machine behavior for managed callers
- cancel signal handlers when process I/O completes - forward terminal and cancellation signals consistently - terminate child processes when the operation is cancelled
f4513a6 to
d3e9296Compare- run the real Docker Compose CLI in a nested-Docker machine - add image, socket, environment, completion, and help integration - package the plugin and pinned machine image resources - add opt-in idle shutdown and machine/DNS documentation - cover Compose configuration, lifecycle, and DNS behavior
d3e9296 to
16e4607CompareRobertDeRose
commented
Aug 25, 2026
Updated based on your comment. |
jglogan
commented
Aug 28, 2026
Hi Robert, thank you for your contribution, but embedding docker/compose is not within the scope of this project. It requires far more effort to maintain than the We've answered it in many prior issues, PRs, and discussion topics, but the TL;DR is that we'd prefer Compose to be an external plugin (see the work of @stephenlclarke, @Mcrich23, and others). |
Type of Change
Motivation and Context
Inspired by the k8s' plugin implementation and
container machines, this feels like the correct way to finally support docker-compose.yml workflows in an efficient way that doesn't require a full compose-to-container translation layer.This adds
container composesupport backed by a persistent Linux container machinerunning Docker Engine and the real Docker Compose CLI.
This provides a Docker-compatible Compose workflow without Docker Desktop while
keeping Compose state isolated inside a managed
composemachine.What Changed
container composeplugin.composemachine and its Docker data across invocations./usr/bin/docker compose.container machine startfor generic stopped-machine recovery.--socket-path.Important Behavior
container compose downremoves Compose resources but does not delete or stop the machine.composemachine.--socket-pathreports the endpoint only; it never starts the machine.Testing
Validation completed:
git diff --checkpassed.Related Issues and Discussions