Skip to content

Conversation

@adityamparikh
Copy link
Contributor

Summary

This PR adds comprehensive Docker support to the Solr MCP Server project using Google's Jib for containerization and GitHub Actions for automated CI/CD.

Key Features

Jib Integration:

  • Multi-platform Docker images (linux/amd64, linux/arm64)
  • No Docker daemon required for builds
  • Optimized layered images for faster deployments
  • Support for local builds, Docker Hub, and GitHub Container Registry

GitHub Actions Workflow:

  • Automated JAR builds and testing on every push/PR
  • Automated Docker image publishing to GHCR and Docker Hub
  • Smart tagging strategy:
    • Main branch: version-SHA + latest
    • Version tags: semantic version + latest
  • Test results and coverage reports as artifacts

Documentation:

  • Comprehensive README updates with Docker setup guide
  • Integration instructions for Claude Desktop using Docker
  • FAQ explaining why Jib was chosen over Spring Boot Buildpacks
  • Publishing instructions for both Docker Hub and GHCR

Why Jib over Buildpacks?

Jib was chosen because Docker images built with Spring Boot Buildpacks output logs to stdout, which interferes with the MCP protocol's STDIO transport. The MCP protocol requires a clean stdout channel - any extraneous output causes connection errors with MCP clients like Claude Desktop.

Test Plan

  • JAR builds successfully with ./gradlew build
  • Docker image builds locally with ./gradlew jibDockerBuild
  • GitHub Actions workflow runs successfully (will run after PR creation)
  • Docker image can be pulled and run from GHCR
  • MCP server works correctly when run in Docker container with STDIO mode

🤖 Generated with Claude Code

adityamparikh and others added 4 commits October 26, 2025 17:46
- Add Jib Gradle plugin for building optimized Docker images
  - Multi-platform support (linux/amd64, linux/arm64)
  - No Docker daemon required for builds
  - Configurable for local builds, Docker Hub, and GHCR

- Add GitHub Actions workflow for automated builds and publishing
  - Builds JAR and runs tests on every push and PR
  - Publishes Docker images to GHCR and Docker Hub
  - Smart tagging: version-SHA for main branch, semantic versioning for tags

- Update README with comprehensive Docker documentation
  - Local build instructions
  - Registry publishing guide (Docker Hub and GHCR)
  - Claude Desktop integration with Docker
  - FAQ explaining why Jib over buildpacks (stdout compatibility)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Remove SonarQube plugin (not configured yet)
- Upgrade Solr from 9.8.1 to 9.9.0
- Upgrade Java from 21 to 25 (toolchain and Docker base image)
- Update GitHub Actions to use Java 25
- Jib already at 3.4.5 (no change needed)
- Apply spotless formatting

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Fix formatting in multiple Java files (align parameters, braces, indentation).
- Reorganize imports for better readability (e.g., static imports, grouping).
- Update YAML workflows for consistent alignment and indentation.
@adityamparikh
Copy link
Contributor Author

Closing this PR as it has been superseded by two cleaner PRs:

This separation makes the changes easier to review and maintains a cleaner git history.

@adityamparikh adityamparikh deleted the docker-support branch November 1, 2025 22:30
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.

1 participant