ParallelLLC/algorithmic_trading
2732
1version: '3.8'2 3services:4 # Production trading system5 trading-system:6 build: .7 container_name: algorithmic-trading-prod8 ports:9 - "8000:8000"10 volumes:11 - trading_data:/app/data12 - trading_logs:/app/logs13 - trading_models:/app/models14 - ./config.yaml:/app/config.yaml:ro15 environment:16 - PYTHONPATH=/app17 - LOG_LEVEL=INFO18 - PYTHONUNBUFFERED=119 command: ["python", "-m", "agentic_ai_system.main", "--mode", "live"]20 restart: unless-stopped21 healthcheck:22 test: ["CMD", "python", "-c", "import sys; sys.exit(0)"]23 interval: 30s24 timeout: 10s25 retries: 326 start_period: 40s27 deploy:28 resources:29 limits:30 memory: 2G31 cpus: '1.0'32 reservations:33 memory: 512M34 cpus: '0.5'35 logging:36 driver: "json-file"37 options:38 max-size: "10m"39 max-file: "3"40 41 # Monitoring service42 monitoring:43 image: prom/prometheus:latest44 container_name: trading-monitoring45 ports:46 - "9090:9090"47 volumes:48 - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro49 - prometheus_data:/prometheus50 command:51 - '--config.file=/etc/prometheus/prometheus.yml'52 - '--storage.tsdb.path=/prometheus'53 - '--web.console.libraries=/etc/prometheus/console_libraries'54 - '--web.console.templates=/etc/prometheus/consoles'55 - '--storage.tsdb.retention.time=200h'56 - '--web.enable-lifecycle'57 restart: unless-stopped58 59 # Grafana for visualization60 grafana:61 image: grafana/grafana:latest62 container_name: trading-grafana63 ports:64 - "3000:3000"65 volumes:66 - grafana_data:/var/lib/grafana67 - ./monitoring/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro68 - ./monitoring/grafana/datasources:/etc/grafana/provisioning/datasources:ro69 environment:70 - GF_SECURITY_ADMIN_PASSWORD=admin71 - GF_USERS_ALLOW_SIGN_UP=false72 restart: unless-stopped73 depends_on:74 - monitoring75 76 # Backup service77 backup:78 build: .79 container_name: trading-backup80 volumes:81 - trading_data:/app/data:ro82 - trading_logs:/app/logs:ro83 - trading_models:/app/models:ro84 - backup_data:/backup85 environment:86 - PYTHONPATH=/app87 command: ["python", "-c", "import shutil; import os; from datetime import datetime; timestamp = datetime.now().strftime('%Y%m%d_%H%M%S'); shutil.make_archive(f'/backup/trading_backup_{timestamp}', 'zip', '/app/data'); shutil.make_archive(f'/backup/models_backup_{timestamp}', 'zip', '/app/models'); print('Backup completed')"]88 restart: "no"89 90volumes:91 trading_data:92 driver: local93 trading_logs:94 driver: local95 trading_models:96 driver: local97 prometheus_data:98 driver: local99 grafana_data:100 driver: local101 backup_data:102 driver: local 