# Go Micro + MCP Gateway deployment with Docker Compose # # This runs: # 1. Consul — service registry (discovery) # 2. App — your go-micro service(s) # 3. MCP Gateway — standalone MCP gateway connected to Consul # 4. Jaeger — distributed tracing UI # # Usage: # docker-compose up # # Endpoints: # MCP Tools: http://localhost:3001/mcp/tools # Consul UI: http://localhost:8500 # Jaeger UI: http://localhost:16686 # Service: http://localhost:9090 (RPC) services: # --- Service Registry --- consul: image: consul:1.15 ports: - "8500:8500" command: agent -server -bootstrap-expect=1 -ui -client=0.0.0.0 # --- Your Go Micro Service --- app: build: context: . dockerfile: Dockerfile ports: - "9090:9090" environment: MICRO_REGISTRY: consul MICRO_REGISTRY_ADDRESS: consul:8500 MICRO_SERVER_ADDRESS: :9090 depends_on: - consul restart: unless-stopped # --- MCP Gateway (standalone) --- mcp-gateway: build: context: . dockerfile: Dockerfile.gateway ports: - "3001:3001" environment: MICRO_REGISTRY: consul MICRO_REGISTRY_ADDRESS: consul:8500 MCP_ADDRESS: :3001 OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 depends_on: - consul - app restart: unless-stopped # --- Tracing --- jaeger: image: jaegertracing/all-in-one:1.53 ports: - "16686:16686" # UI - "4318:4318" # OTLP HTTP environment: COLLECTOR_OTLP_ENABLED: "true"