generated from personal-projects/leo-claude-mktplace
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>
44 lines
1001 B
YAML
44 lines
1001 B
YAML
version: '3.8'
|
|
|
|
services:
|
|
gitea-mcp-wrapper:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: gitea-mcp-wrapper:latest
|
|
container_name: gitea-mcp-wrapper
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
# Gitea Configuration
|
|
- GITEA_URL=${GITEA_URL}
|
|
- GITEA_TOKEN=${GITEA_TOKEN}
|
|
- GITEA_OWNER=${GITEA_OWNER}
|
|
- GITEA_REPO=${GITEA_REPO}
|
|
|
|
# HTTP Server Configuration
|
|
- HTTP_HOST=0.0.0.0
|
|
- HTTP_PORT=8000
|
|
|
|
# Authentication (Optional)
|
|
- AUTH_TOKEN=${AUTH_TOKEN:-}
|
|
|
|
# Tool Filtering (Optional)
|
|
- ENABLED_TOOLS=${ENABLED_TOOLS:-}
|
|
- DISABLED_TOOLS=${DISABLED_TOOLS:-}
|
|
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health').read()"]
|
|
interval: 30s
|
|
timeout: 3s
|
|
retries: 3
|
|
start_period: 5s
|
|
|
|
networks:
|
|
- gitea-mcp-network
|
|
|
|
networks:
|
|
gitea-mcp-network:
|
|
driver: bridge
|