Skip to content

[PoC] in-tree compose extension with a compose stack point - #4

Draft
ndeloof wants to merge 1 commit into
extensions-frameworkfrom
compose-stack-extension
Draft

[PoC] in-tree compose extension with a compose stack point#4
ndeloof wants to merge 1 commit into
extensions-frameworkfrom
compose-stack-extension

Conversation

@ndeloof

@ndeloof ndeloof commented Aug 12, 2026

Copy link
Copy Markdown
Owner

PoC on top of the extensions framework (moby#53021), demonstrating the model discussed around docker/compose#13958: instead of a bespoke REST endpoint gated by context metadata, the "compose coordinator" pre-up push is an extension point.

  • extpoints/compose/stack/v0: the compose stack point — Publish receives the resolved Compose project definition (equivalent of the resolved compose.yaml) before up starts. Contract + mobyextgen output committed.
  • daemon/internal/composeext: builtin no-op extension — logs the received stack, exposed as a gRPC service on the daemon socket through the service.grpc point.
  • contrib/dind-compose-extension/Dockerfile: docker-in-docker demo image running this dockerd.

Validated end to end with the Compose counterpart (docker/compose#14040): docker compose up inside the DinD produces

level=info msg="composeext: received compose stack definition" bytes=175 complete=true project=demo

and against a stock engine the Compose side degrades silently (Unimplemented / no h2c → debug log).

Pure demonstrator: no tests, no cleanliness intended.

Demo built on top of the extensions framework (moby#53021):

- com.docker.compose.stack.v0 point: receives the resolved Compose
  project definition (equivalent of the resolved compose.yaml) pushed
  by the Compose client before up starts. Contract + mobyextgen output.
- composeext builtin extension: no-op provider that only logs the
  received stack, exposed as a gRPC service on the daemon socket via
  the service.grpc point.
- contrib/dind-compose-extension: docker-in-docker demo image running
  this dockerd, to exercise the matching Compose-side PoC.

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
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.

1 participant