| version: '3.8' | |
| services: | |
| # MCP Server with stdio transport (default) | |
| roslyn-stone-mcp-stdio: | |
| build: | |
| context: . | |
| dockerfile: src/RoslynStone.Api/Dockerfile | |
| image: roslyn-stone-mcp:latest-stdio | |
| container_name: roslyn-stone-mcp-stdio | |
| environment: | |
| - DOTNET_ENVIRONMENT=Development | |
| - MCP_TRANSPORT=stdio | |
| - OTEL_EXPORTER_OTLP_ENDPOINT=http://aspire-dashboard:18889 | |
| - OTEL_SERVICE_NAME=roslyn-stone-mcp-stdio | |
| - OTEL_RESOURCE_ATTRIBUTES=service.namespace=roslyn-stone,service.instance.id=mcp-stdio-1 | |
| stdin_open: true | |
| tty: true | |
| networks: | |
| - roslyn-stone-network | |
| depends_on: | |
| - aspire-dashboard | |
| # MCP Server with HTTP transport | |
| roslyn-stone-mcp-http: | |
| build: | |
| context: . | |
| dockerfile: src/RoslynStone.Api/Dockerfile | |
| image: roslyn-stone-mcp:latest-http | |
| container_name: roslyn-stone-mcp-http | |
| environment: | |
| - DOTNET_ENVIRONMENT=Development | |
| - MCP_TRANSPORT=http | |
| - ASPNETCORE_URLS=http://+:8080 | |
| - OTEL_EXPORTER_OTLP_ENDPOINT=http://aspire-dashboard:18889 | |
| - OTEL_SERVICE_NAME=roslyn-stone-mcp-http | |
| - OTEL_RESOURCE_ATTRIBUTES=service.namespace=roslyn-stone,service.instance.id=mcp-http-1 | |
| ports: | |
| - "8080:8080" # MCP HTTP endpoint | |
| networks: | |
| - roslyn-stone-network | |
| depends_on: | |
| - aspire-dashboard | |
| aspire-dashboard: | |
| image: mcr.microsoft.com/dotnet/aspire-dashboard:10.0 | |
| container_name: aspire-dashboard | |
| ports: | |
| - "18888:18888" # Dashboard UI | |
| - "18889:18889" # OTLP gRPC endpoint | |
| environment: | |
| - DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS=true | |
| networks: | |
| - roslyn-stone-network | |
| networks: | |
| roslyn-stone-network: | |
| driver: bridge | |