# ============================================= # DeepAudit v3.0.0 Docker Compose 配置 # ============================================= # 基础部署: docker compose up -d # Agent 模式: docker compose --profile agent up -d services: # ============================================= # 核心服务 # ============================================= db: image: postgres:15-alpine volumes: - postgres_data:/var/lib/postgresql/data environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=deepaudit ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 networks: - deepaudit-network backend: build: context: ./backend volumes: - backend_uploads:/app/uploads ports: - "8000:8000" env_file: - ./backend/.env environment: - DATABASE_URL=postgresql+asyncpg://postgres:postgres@db:5432/deepaudit depends_on: db: condition: service_healthy command: sh -c ".venv/bin/alembic upgrade head && .venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000" networks: - deepaudit-network frontend: build: context: ./frontend ports: - "3000:3000" environment: - VITE_API_BASE_URL=http://localhost:8000/api/v1 depends_on: - backend networks: - deepaudit-network # ============================================= # Agent 审计模式服务 (可选) # 使用 --profile agent 启用 # ============================================= # Milvus 向量数据库 (用于 RAG 功能) milvus-etcd: image: quay.io/coreos/etcd:v3.5.5 profiles: ["agent"] environment: - ETCD_AUTO_COMPACTION_MODE=revision - ETCD_AUTO_COMPACTION_RETENTION=1000 - ETCD_QUOTA_BACKEND_BYTES=4294967296 - ETCD_SNAPSHOT_COUNT=50000 volumes: - milvus_etcd:/etcd command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd healthcheck: test: ["CMD", "etcdctl", "endpoint", "health"] interval: 30s timeout: 20s retries: 3 networks: - deepaudit-network milvus-minio: image: minio/minio:RELEASE.2023-03-20T20-16-18Z profiles: ["agent"] environment: MINIO_ACCESS_KEY: minioadmin MINIO_SECRET_KEY: minioadmin volumes: - milvus_minio:/minio_data command: minio server /minio_data --console-address ":9001" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 networks: - deepaudit-network milvus: image: milvusdb/milvus:v2.4-latest profiles: ["agent"] command: ["milvus", "run", "standalone"] security_opt: - seccomp:unconfined environment: ETCD_ENDPOINTS: milvus-etcd:2379 MINIO_ADDRESS: milvus-minio:9000 volumes: - milvus_data:/var/lib/milvus ports: - "19530:19530" - "9091:9091" depends_on: - milvus-etcd - milvus-minio healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] interval: 30s start_period: 90s timeout: 20s retries: 3 networks: - deepaudit-network # Redis (用于任务队列,可选) redis: image: redis:7-alpine profiles: ["agent"] ports: - "6379:6379" volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 networks: - deepaudit-network networks: deepaudit-network: driver: bridge volumes: postgres_data: backend_uploads: milvus_etcd: milvus_minio: milvus_data: redis_data: