version: '3.8'
services:
static-analysis-server:
build:
context: ..
dockerfile: docker/static-analysis.Dockerfile
ports:
- "3001:3001"
environment:
- NODE_ENV=production
- LOG_LEVEL=info
volumes:
- ../logs:/app/logs
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "--version"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- mcp-network
dependency-analysis-server:
build:
context: ..
dockerfile: docker/dependency-analysis.Dockerfile
ports:
- "3002:3002"
environment:
- NODE_ENV=production
- LOG_LEVEL=info
volumes:
- ../logs:/app/logs
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "--version"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- mcp-network
complexity-analyzer-server:
build:
context: ..
dockerfile: docker/complexity-analyzer.Dockerfile
ports:
- "3003:3003"
environment:
- NODE_ENV=production
- LOG_LEVEL=info
volumes:
- ../logs:/app/logs
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "--version"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- mcp-network
# Optional: Redis for caching
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
command: redis-server --appendonly yes
networks:
- mcp-network
# Optional: PostgreSQL for data persistence
postgres:
image: postgres:15-alpine
ports:
- "5432:5432"
environment:
- POSTGRES_DB=mcp_code_analysis
- POSTGRES_USER=mcp_user
- POSTGRES_PASSWORD=mcp_password
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
networks:
- mcp-network
volumes:
redis_data:
postgres_data:
networks:
mcp-network:
driver: bridge