TradingAgents-CN Docker & Self-Hosted Deployment

GitHub

基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版

32,324 stars Python Python 1 file · ~57,676 tokens
RAW Compose
1. Pull Image (DOCKERHUB) docker pull library/tradingagents-backend
2. Docker Run (1-Click Launch) docker run -d --name tradingagents-cn -p 8001:8001 --restart always tradingagents-backend:latest
3. Podman Run podman run -d --name tradingagents-cn -p 8001:8001 --restart always tradingagents-backend:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/library/tradingagents-backend:latest
5. ORAS Pull (OCI Artifact) oras pull tradingagents-backend:latest
6. Compose Deployment docker compose up -d
docs/deployment/docker/docker-compose.split.yml
Download .yml
version: '3.8'

# 前后端分离的 Docker Compose(保留旧版 docker-compose.yml 不变)
services:
  # FastAPI 后端服务
  backend:
    build:
      context: .
      dockerfile: Dockerfile.backend
    image: tradingagents-backend:latest
    container_name: TradingAgents-backend
    ports:
      - "8001:8001"
    env_file:
      - .env
    environment:
      PYTHONUNBUFFERED: 1
      PYTHONDONTWRITEBYTECODE: 1
      TZ: "Asia/Shanghai"
      TRADINGAGENTS_LOG_LEVEL: "INFO"
      TRADINGAGENTS_MONGODB_URL: mongodb://admin:tradingagents123@mongodb:27017/tradingagents?authSource=admin
      TRADINGAGENTS_REDIS_URL: redis://:tradingagents123@redis:6379
      TRADINGAGENTS_CACHE_TYPE: redis
      DOCKER_CONTAINER: "true"
    depends_on:
      - mongodb
      - redis
    networks:
      - tradingagents-network
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8001/docs"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "3"

  # 前端静态站点服务(Nginx 托管 Vite 构建产物)
  frontend:
    build:
      context: .
      dockerfile: Dockerfile.frontend
    image: tradingagents-frontend:latest
    container_name: TradingAgents-frontend
    ports:
      - "8080:80"
    environment:
      TZ: "Asia/Shanghai"
    depends_on:
      - backend
    networks:
      - tradingagents-network
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "3"

  # MongoDB 数据库服务
  mongodb:
    image: mongo:4.4
    container_name: tradingagents-mongodb
    restart: unless-stopped
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: tradingagents123
      MONGO_INITDB_DATABASE: tradingagents
      TZ: "Asia/Shanghai"
    volumes:
      - mongodb_data:/data/db
      - ./scripts/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    networks:
      - tradingagents-network
    healthcheck:
      test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  # Redis 缓存服务
  redis:
    image: redis:latest
    container_name: tradingagents-redis
    restart: unless-stopped
    ports:
      - "6379:6379"
    environment:
      TZ: "Asia/Shanghai"
    command: redis-server --appendonly yes --requirepass tradingagents123
    volumes:
      - redis_data:/data
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    networks:
      - tradingagents-network
    healthcheck:
      test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s

  # Redis Commander 管理界面(可选)
  redis-commander:
    image: ghcr.io/joeferner/redis-commander:latest
    container_name: tradingagents-redis-commander
    restart: unless-stopped
    ports:
      - "8081:8081"
    environment:
      - REDIS_HOSTS=local:redis:6379:0:tradingagents123
    networks:
      - tradingagents-network
    depends_on:
      - redis
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8081"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s
    profiles:
      - management

  # Mongo Express 管理界面(可选)
  mongo-express:
    image: mongo-express:latest
    container_name: tradingagents-mongo-express
    restart: unless-stopped
    ports:
      - "8082:8081"
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: admin
      ME_CONFIG_MONGODB_ADMINPASSWORD: tradingagents123
      ME_CONFIG_MONGODB_URL: mongodb://admin:tradingagents123@mongodb:27017/
      ME_CONFIG_BASICAUTH_USERNAME: admin
      ME_CONFIG_BASICAUTH_PASSWORD: tradingagents123
    networks:
      - tradingagents-network
    depends_on:
      - mongodb
    profiles:
      - management

# 数据卷定义
volumes:
  mongodb_data:
    driver: local
    name: tradingagents_mongodb_data
  redis_data:
    driver: local
    name: tradingagents_redis_data

# 网络定义
networks:
  tradingagents-network:
    driver: bridge
    name: tradingagents-network