Skip to content

Conversation

@tlongwell-block
Copy link
Collaborator

Adds a production-ready Docker image for Goose that enables using Goose itself in CI pipelines to improve the codebase. The image is optimized for size (365MB) and includes both the CLI and server binaries.

Primary Goal: Goose in CI

This enables Goose to help maintain and improve itself through automated workflows:

  • Daily test coverage finder that creates PRs with missing tests
  • Code quality audits
  • Security scanning
  • Performance analysis

Example workflow included that runs daily to find untested code and automatically create a PR with a test.

Bonus: Easy Docker Usage for Everyone

While built for CI, this also makes Goose super easy to run in Docker:

CLI usage:

docker run --rm ghcr.io/block/goose:latest --help

Server (goosed) hosting:

docker run -p 3000:3000 --entrypoint goosed ghcr.io/block/goose:latest

Users can now:

  • Run Goose CLI without installing Rust/dependencies
  • Host goosed instances in containers
  • Use with existing Goose Desktop frontend or custom UIs
  • Integrate into their own CI/CD pipelines

What's Included

  • Optimized multi-stage Dockerfile (365MB final image)
  • GitHub Actions workflow to publish images to GHCR
  • Example "test finder" workflow showing Goose improving itself
  • Documentation in BUILDING_DOCKER.md
  • Support for all LLM providers via environment variables

Technical Details

  • Base: Debian Bookworm Slim
  • Includes: goose CLI (32MB) + goosed server (25MB)
  • Multi-platform: linux/amd64 and linux/arm64
  • Auto-publishes: latest on main, version tags on releases
  • Non-root user for security

This is step 1 toward having Goose actively participate in its own development through automated improvements.

@tlongwell-block tlongwell-block marked this pull request as ready for review September 3, 2025 13:53
@tlongwell-block tlongwell-block merged commit 7034d15 into main Sep 3, 2025
11 checks passed
@tlongwell-block tlongwell-block deleted the goose_ci branch September 3, 2025 14:14
michaelneale added a commit that referenced this pull request Sep 3, 2025
* main:
  Align Dynamic Task Interface with Recipe Interface (#4311)
  docs: copilot auth and mcp-ui links (#4497)
  docs: July and August 2025 Community All-Stars Update (#4501)
  remove clicking outside to close recipe warning (#4502)
  lower min width to 450 for small screens
  Convert recipe create and import forms to use tanstack form and zod schema validation (#4499)
  Repo CI: use a writable location for Goose home directory (#4500)
  feat: Add functionality to delete session in history list view (#4480)
  fix: recipe deeplink "+" characters and folder change (#4471)
  Add session to agents (#4216)
  fix: need to send errors to appropriate stream (#4491)
  Add Docker support for Goose in CI/CD pipelines (#4434)
  Add visual indicator while recipe loads (#4447)
  Disable chat input while extensions load (#4417)
  chore(release): release version 1.7.0 (#4391)
  fix double filtering (#4409)
  Rewrite the developer mcp using the rmcp sdk (#4297)
  docs: sessions reorg and conversation features (#4462)
katzdave added a commit that referenced this pull request Sep 4, 2025
* 'main' of github.com:block/goose:
  Align Dynamic Task Interface with Recipe Interface (#4311)
  docs: copilot auth and mcp-ui links (#4497)
  docs: July and August 2025 Community All-Stars Update (#4501)
  remove clicking outside to close recipe warning (#4502)
  lower min width to 450 for small screens
  Convert recipe create and import forms to use tanstack form and zod schema validation (#4499)
  Repo CI: use a writable location for Goose home directory (#4500)
  feat: Add functionality to delete session in history list view (#4480)
  fix: recipe deeplink "+" characters and folder change (#4471)
  Add session to agents (#4216)
  fix: need to send errors to appropriate stream (#4491)
  Add Docker support for Goose in CI/CD pipelines (#4434)
  Add visual indicator while recipe loads (#4447)
  Disable chat input while extensions load (#4417)
  chore(release): release version 1.7.0 (#4391)
This was referenced Sep 9, 2025
thebristolsound pushed a commit to thebristolsound/goose that referenced this pull request Sep 11, 2025
Adds a production-ready Docker image for Goose that enables using Goose itself in CI pipelines to improve the codebase.

Signed-off-by: Matt Donovan <[email protected]>
HikaruEgashira pushed a commit to HikaruEgashira/goose that referenced this pull request Oct 3, 2025
Adds a production-ready Docker image for Goose that enables using Goose itself in CI pipelines to improve the codebase.

Signed-off-by: HikaruEgashira <[email protected]>
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.

3 participants