docker-compose.ymlโข1.55 kB
version: '3.8'
services:
codegraph-api:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
- RUST_LOG=debug
- DATABASE_PATH=/app/data/codegraph.db
volumes:
- ./data:/app/data
- ./config:/app/config
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# Optional: Redis for caching
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
prometheus:
image: prom/prometheus:v2.37.0
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
grafana:
image: grafana/grafana:8.5.2
ports:
- "3001:3000" # Use 3001 to avoid conflict with codegraph-api
volumes:
- grafana_data:/var/lib/grafana
alertmanager:
image: prom/alertmanager:v0.24.0
ports:
- "9093:9093"
volumes:
- ./alertmanager.yml:/etc/alertmanager/config.yml
- alertmanager_data:/alertmanager
command:
- '--config.file=/etc/alertmanager/config.yml'
- '--storage.path=/alertmanager'
volumes:
redis_data:
prometheus_data: {}
grafana_data: {}
alertmanager_data: {}