-
Notifications
You must be signed in to change notification settings - Fork 18
Multi architecture docker build for Glean MCP #20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Thanks for this change, @aaronsb! It looks like CI is failing. I'll try to take a peek at this and resolve unless you have a chance before me. |
@aaronsb I've fixed the CI issue (was the result of pnpm@10 restricting builds on package installs). This branch just needs a rebase (and the merge conflict needs fixing, likely due to my running |
Cool - I made sure it would build on my fork but I've probably got different rules set up. Let me know if you have any other questions on rebase or ci. |
Hey! Are there any updates on this changeset? This update would be very helpful for my team, I'd be happy to help contribute if needed as well! |
Hey, it's been months and I would imagine the glean mcp has changed quite a bit! I would almost rather you guys decline the PR and I'll go through and re-do it again. I found for me, that using a docker image of the STDIO MCP server was most helpful for abstract environments. If there's not a lot of need for it, then we should not include it. |
a015771
to
0812d73
Compare
Hey - I decided to spend a little more time checking out what changed and went ahead and validated this approach. Turns out the monorepo structure actually makes this more useful. What I updated:
The Docker STDIO pattern works really well - I'm running it in Claude Code right now and it's handling search/chat requests perfectly. The containerized approach eliminates all the dependency setup headaches. Testing Results:
The Docker approach is particularly nice for environments where you don't want to manage Node.js dependencies directly. Ready for review if you think it's useful - happy to iterate on anything that needs tweaking. |
- Update Dockerfile for pnpm monorepo with proper workspace handling - Add smart build script with clean output and logging - Fix user permissions and directory structure for MCP server - Update GitHub Actions workflow for modern buildx and pnpm - Add proper entrypoint supporting both local-mcp-server and configure-mcp-server - Tested and verified working with production Glean instance - Supports both development (npm) and production (Docker) deployment 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
0812d73
to
e313474
Compare
Awesome! 🔥 This week I'll plan on trying our your branch locally as well. Hope we can get a review on this from a maintainer! ❤️ |
@aaronsb I checked out the PR locally and tried this out just now.
Great, it builds! I tried running
Which I cannot access on Docker Desktop for Mac. Is the intent for that configuration to be made available locally? Looking great. 🚀 |
Add Multi-Architecture Docker Build Support
Overview
This pull request adds support for building Docker images for multiple CPU architectures (amd64 and arm64) both locally and via GitHub Actions. This enhancement improves compatibility across different platforms and deployment environments. When users want to use the Glean MCP server, many different possible MCP capable tool hosts are able to use dockerized images. This prevents errors and difficulties with deploying the MCP server, and sets the roadway for more enhancements to this MCP server.
Changes
GitHub Actions Workflow
docker-build.yml
)Local Build Improvements
Docker Configuration
Benefits
Testing
Notes for Reviewers
Deployment Examples
Running the MCP Server with Docker
Using in Agent Configurations
This containerized approach significantly simplifies deployment across different environments and architectures without requiring manual setup of Node.js, dependencies, or build tools on the host system.