IMPORTANT: Branch Note
The changes have been implemented on the release/ghcr-debian-cross branch locally. Due to workspace automation constraints, the identical changes have also been pushed to origin/copilot/update-dockerfile-to-debian-slim.
To create the PR from the correct branch name (release/ghcr-debian-cross), you can:
- Manually push the local
release/ghcr-debian-crossbranch:git push -u origin release/ghcr-debian-cross - Then create a PR from
release/ghcr-debian-crosstomain
Alternatively, you can rename the existing copilot/update-dockerfile-to-debian-slim branch to release/ghcr-debian-cross on GitHub.
This branch contains comprehensive updates to the Docker configuration and CI/CD workflows for the rust-cargo-docs-rag-mcp project.
- Changed: Migrated from Alpine to Debian slim (bullseye)
- Why: Better compatibility with Rust dependencies and OpenSSL
- Details: Multi-stage build preserved, uses
rust:1.91.1-slim-bullseyefor builder anddebian:bullseye-slimfor runtime
- Changed: Improved entrypoint script with case statement
- Features:
- Support for http and stdio modes
- Debug mode flag handling
- Pass-through support for custom arguments
- Better error messages for unknown modes
- New: CI workflow for continuous integration
- Triggers: On push to main and pull requests to main
- Steps:
- Checkout code
- Cache cargo dependencies
- Install Rust 1.91.1 toolchain
- Build release binary
- Run all tests
- New: Comprehensive release automation
- Triggers: On push of tags matching
v*or manual dispatch - Capabilities:
- Multi-architecture Docker builds (amd64, arm64)
- Push to GitHub Container Registry (GHCR)
- Create GitHub releases
- Cross-compile binaries for x86_64 and aarch64 Linux
- Upload binaries as release assets
- Changed: Rewritten from Python to pure shell
- Benefits:
- No Python dependency required
- Falls back to sed if perl is not available
- More portable across different environments
- Idempotent and safe
- Changed: Complete rewrite of README
- New sections:
- Release/versioning workflow with Cocogitto
- Docker installation and usage (GHCR)
- Environment variables documentation
- pkgx and Cargo installation methods
- All available MCP tools with examples
- Testing tools directly without server
- MCP protocol integration examples
✅ YAML syntax validated for all workflows ✅ Shell script syntax validated for entrypoint.sh and set-version.sh ✅ Dockerfile validated with hadolint (minor warnings about best practices) ✅ CodeQL security scan completed with no issues ✅ Build system validated (cargo build succeeds) ✅ Test suite runs (some pre-existing failures unrelated to these changes)
A .github/workflows/ci.yml
A .github/workflows/release-and-publish.yml
M Dockerfile
M README.md
M docker/entrypoint.sh
M scripts/set-version.sh
- Review and approve this PR
- Merge to main
- Tag a release (e.g.,
v0.4.0) to trigger the release workflow - Verify Docker images are published to GHCR
- Verify binaries are attached to the GitHub release
- The
productionenvironment referenced in the release workflow may need to be configured in GitHub repository settings - Ensure GitHub Actions has permission to publish packages (Settings → Actions → General → Workflow permissions → Read and write permissions)
- The release workflow requires the
GITHUB_TOKENwhich is automatically provided by GitHub Actions