Skip to content

refactor(compose): define the static orchestrator command once - #78

Merged
rickstaa merged 1 commit into
mainfrom
rs/compose-static-shared
Aug 17, 2026
Merged

refactor(compose): define the static orchestrator command once#78
rickstaa merged 1 commit into
mainfrom
rs/compose-static-shared

Conversation

@rickstaa

Copy link
Copy Markdown
Member

Closes #51, taking the deduplication option rather than the CI guard.

api-proxy and vllm are the two static runner examples. They need
-liveRunnerConfig=/config/runners.json, and extends replaces a command list
rather than appending to it, so both restated all sixteen on-chain flags and all
eleven offchain ones verbatim. Four copies of a command that is meant to live in one
place, and #50 already showed what that costs: -ticketEV moved to 1e10 in the
shared file and both copies silently kept 1e9.

Two new shared files carry the static variant:

  • compose.orchestrator.static.yml extends compose.orchestrator.yml and adds the flag
  • compose.onchain.static.yml extends compose.onchain.yml and adds the flag

Each example then points its extends at the static file and keeps only what is
genuinely its own, the runners.json mount. Net 76 lines of duplication removed, and
the count of places the command is written drops from five to three.

Verified

Nested extends resolves in both directions:

docker compose -f api-proxy/compose.yml config
docker compose -f api-proxy/compose.yml -f api-proxy/compose.onchain.yml config

Offchain the command comes out with -liveRunnerConfig and -network=offchain, image,
ports and healthcheck inherited. Layered on-chain it comes out with the full on-chain
flag set plus -liveRunnerConfig, signer intact. Same for vllm.

Relation to the other open compose PRs

  • ci: validate every example's compose files #76 adds a compose job to lint. No file overlap; once it is in, it validates this
    chain on every future compose change.
  • ci: catch drift in the restated orchestrator commands #71 is the CI-guard answer to the same issue. It polices the four restated copies
    that this PR deletes, and its glob (*/compose.yml) does not match the new
    top-level compose.*.static.yml, so as written it would pass with zero copies
    checked. Either retarget its SHARED map at the two static files or close it. The
    two static files still restate the shared command, so a narrowed guard is defensible.

Next static example

streamdiffusion-trickle and streamdiffusion-ws are unmerged locally and each
restate the command too. They extend the static file when they land, which is the
"next example inherits whatever is stale" case from #51.

api-proxy and vllm restated the whole shared orchestrator command just to
add -liveRunnerConfig, which `extends` cannot append to a list. Two new
shared files carry that variant, so the examples extend instead of copy
and a change to the shared command reaches every example.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 17, 2026 10:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@rickstaa
rickstaa merged commit 4794926 into main Aug 17, 2026
1 check passed
@rickstaa
rickstaa deleted the rs/compose-static-shared branch August 17, 2026 10:34
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.

compose: the shared orchestrator command is copied into api-proxy and vllm

2 participants