122 lines
2.6 KiB
YAML
122 lines
2.6 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# Redis for caching and rate limiting
|
|
redis:
|
|
image: redis:7-alpine
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|
|
|
|
# AgentDB for vector search
|
|
agentdb:
|
|
image: agentdb/agentdb:latest
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
- AGENTDB_PORT=8080
|
|
- AGENTDB_LOG_LEVEL=info
|
|
volumes:
|
|
- agentdb-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|
|
|
|
# Lean server for theorem proving
|
|
lean-server:
|
|
image: leanprover/lean4:latest
|
|
ports:
|
|
- "8081:8081"
|
|
volumes:
|
|
- ./src/lean-agentic:/workspace
|
|
command: ["lean", "--server"]
|
|
|
|
# Rust backend services
|
|
aimds-backend:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/Dockerfile.rust
|
|
ports:
|
|
- "8082:8082"
|
|
environment:
|
|
- RUST_LOG=info
|
|
- RUST_BACKTRACE=1
|
|
depends_on:
|
|
- redis
|
|
- agentdb
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8082/health"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|
|
|
|
# TypeScript API Gateway
|
|
aimds-gateway:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/Dockerfile.node
|
|
ports:
|
|
- "3000:3000"
|
|
- "9090:9090" # Prometheus metrics
|
|
environment:
|
|
- NODE_ENV=development
|
|
- REDIS_URL=redis://redis:6379
|
|
- AGENTDB_URL=http://agentdb:8080
|
|
- LEAN_SERVER_URL=http://lean-server:8081
|
|
- RUST_BACKEND_URL=http://aimds-backend:8082
|
|
env_file:
|
|
- .env
|
|
depends_on:
|
|
- redis
|
|
- agentdb
|
|
- lean-server
|
|
- aimds-backend
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|
|
|
|
# Prometheus for metrics collection
|
|
prometheus:
|
|
image: prom/prometheus:latest
|
|
ports:
|
|
- "9091:9090"
|
|
volumes:
|
|
- ./docker/prometheus.yml:/etc/prometheus/prometheus.yml
|
|
- prometheus-data:/prometheus
|
|
command:
|
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
- '--storage.tsdb.path=/prometheus'
|
|
|
|
# Grafana for visualization
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
ports:
|
|
- "3001:3000"
|
|
environment:
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
volumes:
|
|
- grafana-data:/var/lib/grafana
|
|
- ./docker/grafana-dashboards:/etc/grafana/provisioning/dashboards
|
|
depends_on:
|
|
- prometheus
|
|
|
|
volumes:
|
|
redis-data:
|
|
agentdb-data:
|
|
prometheus-data:
|
|
grafana-data:
|
|
|
|
networks:
|
|
default:
|
|
driver: bridge
|