version: '3.8' services: # API 服务 api: build: . container_name: moneyprinter02-api restart: unless-stopped ports: - "8080:8080" volumes: - ./config:/app/config - ./output:/app/output - ./cache:/app/cache - ./logs:/app/logs - ./resource:/app/resource environment: - TZ=Asia/Shanghai - PYTHONUNBUFFERED=1 env_file: - .env networks: - moneyprinter-network command: python main.py # Web UI 服务 webui: build: . container_name: moneyprinter02-webui restart: unless-stopped ports: - "8501:8501" volumes: - ./config:/app/config - ./output:/app/output - ./cache:/app/cache - ./logs:/app/logs - ./resource:/app/resource environment: - TZ=Asia/Shanghai - PYTHONUNBUFFERED=1 env_file: - .env networks: - moneyprinter-network depends_on: - api command: streamlit run webui.py --server.port 8501 --server.address 0.0.0.0 # Redis (可选,用于任务队列) redis: image: redis:7-alpine container_name: moneyprinter02-redis restart: unless-stopped ports: - "6379:6379" volumes: - redis-data:/data networks: - moneyprinter-network command: redis-server --appendonly yes networks: moneyprinter-network: driver: bridge volumes: redis-data: