Add compose.prebuilt.yaml overlay for prebuilt GHCR images#548
Merged
Conversation
Adds an overlay for dev/docker-compose that resets the `build:` block of every locally-built component and points it at the matching prebuilt image from GHCR, so developers can run the stack without local builds. Image tag defaults to "main" and is overridable via BUTTERCUP_IMAGE_TAG. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The static-checks YAML step uses yaml.safe_load_all, which rejects the Compose-specific !reset/!override merge tags used by compose.prebuilt.yaml. Register no-op constructors for those tags so compose overlays validate without masking real YAML errors elsewhere. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hbrodin
approved these changes
May 18, 2026
Collaborator
hbrodin
left a comment
There was a problem hiding this comment.
Image-to-service mappings line up with .github/workflows/docker.yml, all 11 build services are covered, and the SafeLoader constructor for !reset/!override correctly unblocks the static-checks workflow. One minor doc nit inline.
Address PR #548 review nit: the Configuration section's file inventory omitted the new prebuilt overlay. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
dev/docker-compose/compose.prebuilt.yaml, an overlay on top ofcompose.yamlthat lets developers run the stack from the published GHCR images instead of building every component locally.build:block (via the Compose!reset nullmerge tag) and pointsimage:at the matching prebuilt image:ghcr.io/trailofbits/buttercup/buttercup-{program-model,fuzzer,orchestrator,seed-gen,patcher}.main, overridable viaBUTTERCUP_IMAGE_TAG.Usage
Testing
docker compose -f compose.yaml -f compose.prebuilt.yaml configconfirms every built service resolves tobuild=<none>with the correct GHCRimage:, and no other service changed.🤖 Generated with Claude Code