Create Docker deployment infrastructure

This commit provides production-ready Docker deployment for the HTTP MCP wrapper.

Components:
- Dockerfile: Multi-stage build for optimized image size
  - Builder stage: Compiles dependencies and installs packages
  - Production stage: Minimal runtime image with only necessary files
  - Python 3.11 slim base image
  - Health check endpoint integration
  - Proper Python environment variables (unbuffered, no bytecode)

- docker-compose.yml: Complete orchestration setup
  - Service configuration with restart policy
  - Port mapping (8000:8000)
  - Environment variable passthrough
  - Health check configuration
  - Isolated network
  - Ready for production deployment

- .dockerignore: Optimized build context
  - Excludes Python cache, virtual environments, IDE files
  - Excludes tests and documentation
  - Reduces image size and build time

- .env.docker.example: Docker-specific environment template
  - All required Gitea configuration
  - Optional authentication settings
  - Optional tool filtering settings

Deployment:
1. Copy .env.docker.example to .env
2. Fill in Gitea credentials
3. Run: docker-compose up -d
4. Access at http://localhost:8000

This infrastructure enables easy deployment to any Docker-compatible environment (local, cloud, Kubernetes).

Closes #15

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-03 16:10:06 -05:00
parent 3d1fd2e2a6
commit d21f85545b
4 changed files with 183 additions and 0 deletions

19
.env.docker.example Normal file
View File

@@ -0,0 +1,19 @@
# Docker Compose Environment Variables
# Copy this file to .env and fill in your values
# Gitea Configuration (REQUIRED)
GITEA_URL=https://gitea.example.com
GITEA_TOKEN=your_gitea_api_token_here
GITEA_OWNER=your_username_or_org
GITEA_REPO=your_repo_name
# Authentication Configuration (OPTIONAL)
# Uncomment to enable Bearer token authentication
# AUTH_TOKEN=your_bearer_token_here
# Tool Filtering Configuration (OPTIONAL)
# Uncomment to enable specific tools only (whitelist mode)
# ENABLED_TOOLS=list_issues,create_issue,update_issue,list_labels
# Uncomment to disable specific tools (blacklist mode)
# DISABLED_TOOLS=delete_issue,close_milestone