version: '3.8'
# Development Configuration
# Extends the main docker-compose.yml with development-specific settings
services:
# ========================================
# AI Guides API Service (Development)
# ========================================
ai-guides-api:
build:
context: .
dockerfile: Dockerfile
target: app # Use development stage
volumes:
- .:/app # Live code reloading
- ./logs:/app/logs
environment:
- GEMINI_API_KEY=${GEMINI_API_KEY}
- NODE_ENV=development
- LOG_LEVEL=debug
- DEBUG=true
- DEVELOPMENT_MODE=true
command: ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8888", "--reload"]
ports:
- "8888:8888"
# ========================================
# Context Engineering API Service (Development)
# ========================================
context-engineering-api:
build:
context: .
dockerfile: Dockerfile
target: app # Use development stage
volumes:
- .:/app # Live code reloading
- ./logs:/app/logs
- ./context_engineering/templates:/app/context_engineering/templates
environment:
- GEMINI_API_KEY=${GEMINI_API_KEY}
- NODE_ENV=development
- LOG_LEVEL=debug
- DEBUG=true
- DEVELOPMENT_MODE=true
working_dir: /app/context_engineering
command: ["python", "context_api.py", "--reload"]
ports:
- "9001:9001"
# ========================================
# Workflow System Service (Development)
# ========================================
workflow-system:
build:
context: .
dockerfile: Dockerfile
target: app # Use development stage
volumes:
- .:/app # Live code reloading
- ./logs:/app/logs
environment:
- GEMINI_API_KEY=${GEMINI_API_KEY}
- NODE_ENV=development
- LOG_LEVEL=debug
- DEBUG=true
- DEVELOPMENT_MODE=true
working_dir: /app/workflow_system
command: ["python", "workflow_api.py", "--reload"]
ports:
- "9002:9002"
# ========================================
# MCP Server (Development)
# ========================================
mcp-server:
build:
context: .
dockerfile: Dockerfile
target: app # Use development stage
volumes:
- .:/app # Live code reloading
environment:
- NODE_ENV=development
- CONTEXT_API_URL=http://context-engineering-api:9001
- AI_GUIDES_API_URL=http://ai-guides-api:8888
- LOG_LEVEL=debug
working_dir: /app/mcp-server
command: ["node", "--inspect=0.0.0.0:9229", "context_mcp_server.js"]
ports:
- "9229:9229" # Node.js debugger port
# ========================================
# Redis (for development caching)
# ========================================
redis:
image: redis:7-alpine
container_name: context-eng-redis
ports:
- "6379:6379"
networks:
- context-engineering
volumes:
- redis-data:/data
command: redis-server --appendonly yes
restart: unless-stopped
# ========================================
# PostgreSQL (for development database)
# ========================================
postgres:
image: postgres:15-alpine
container_name: context-eng-postgres
environment:
- POSTGRES_DB=context_engineering
- POSTGRES_USER=dev_user
- POSTGRES_PASSWORD=dev_password
ports:
- "5432:5432"
networks:
- context-engineering
volumes:
- postgres-data:/var/lib/postgresql/data
- ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init.sql
restart: unless-stopped
# ========================================
# Monitoring and Observability
# ========================================
# Prometheus for metrics
prometheus:
image: prom/prometheus:latest
container_name: context-eng-prometheus
ports:
- "9090:9090"
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--web.enable-lifecycle'
networks:
- context-engineering
profiles:
- monitoring
# Grafana for visualization
grafana:
image: grafana/grafana:latest
container_name: context-eng-grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin123
volumes:
- grafana-data:/var/lib/grafana
- ./monitoring/grafana-datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml
networks:
- context-engineering
depends_on:
- prometheus
profiles:
- monitoring
# ========================================
# Additional volumes for development
# ========================================
volumes:
redis-data:
driver: local
postgres-data:
driver: local
prometheus-data:
driver: local
grafana-data:
driver: local
# ========================================
# Networks (inherited from main compose)
# ========================================
networks:
context-engineering:
external: true