docker-compose.yml•1.94 kB
version: '3.8'
services:
codecompass-mcp:
build:
context: .
dockerfile: Dockerfile
container_name: codecompass-mcp
environment:
- NODE_ENV=production
- LOG_LEVEL=info
- GITHUB_TOKEN=${GITHUB_TOKEN}
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
- OPENAI_MODEL=${OPENAI_MODEL:-anthropic/claude-3.5-sonnet}
- MAX_RESPONSE_TOKENS=${MAX_RESPONSE_TOKENS:-25000}
- MAX_FILE_CONTENT_LENGTH=${MAX_FILE_CONTENT_LENGTH:-1000}
- CACHE_ENABLED=${CACHE_ENABLED:-true}
- CACHE_TTL=${CACHE_TTL:-300000}
- MAX_FILES=${MAX_FILES:-100}
- MAX_FILE_SIZE=${MAX_FILE_SIZE:-1048576}
- MAX_PROCESSING_TIME=${MAX_PROCESSING_TIME:-60000}
volumes:
# Mount for persistent logs (optional)
- codecompass-logs:/app/logs
# Mount for configuration (optional)
- ./config:/app/config:ro
restart: unless-stopped
stdin_open: true
tty: true
# Health check
healthcheck:
test: ["CMD", "node", "-e", "console.log('Health check passed')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# Resource limits
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
reservations:
cpus: '0.5'
memory: 256M
# Optional: Add a logging service
codecompass-logs:
image: fluent/fluent-bit:latest
container_name: codecompass-logs
depends_on:
- codecompass-mcp
volumes:
- codecompass-logs:/var/log/codecompass
- ./docker/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf:ro
restart: unless-stopped
profiles:
- logging
volumes:
codecompass-logs:
driver: local
# Example usage:
# 1. Basic deployment:
# docker-compose up -d
#
# 2. With logging:
# docker-compose --profile logging up -d
#
# 3. Development mode:
# docker-compose -f docker-compose.yml -f docker-compose.dev.yml up