version: '3.8' services: # Redis缓存服务 redis: image: redis:7-alpine container_name: weibo-redis ports: - "6379:6379" volumes: - redis_data:/data networks: - weibo-network # Nginx反向代理 nginx: image: nginx:alpine container_name: weibo-nginx ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/ssl:/etc/nginx/ssl depends_on: - api-gateway - frontend networks: - weibo-network # 前端React应用 frontend: build: context: ./frontend dockerfile: Dockerfile container_name: weibo-frontend ports: - "3000:3000" environment: - REACT_APP_API_BASE_URL=http://localhost/api/v1 depends_on: - api-gateway networks: - weibo-network # API网关和主API服务 api-gateway: build: context: ./backend dockerfile: Dockerfile target: api_gateway container_name: weibo-api-gateway ports: - "8000:8000" environment: - DATABASE_URL=mysql+aiomysql://weibo:123456789@XX.XX.XX.XX/weibo - REDIS_URL=redis://redis:6379 - JWT_SECRET_KEY=your-super-secret-jwt-key-here - ENVIRONMENT=development depends_on: - redis networks: - weibo-network # 认证服务 auth-service: build: context: ./backend dockerfile: Dockerfile target: auth_service container_name: weibo-auth-service ports: - "8001:8000" environment: - DATABASE_URL=mysql+aiomysql://weibo:123456789@XX.XX.XX.XX/weibo - JWT_SECRET_KEY=your-super-secret-jwt-key-here networks: - weibo-network # 任务调度服务 task-scheduler: build: context: ./backend dockerfile: Dockerfile target: task_scheduler container_name: weibo-task-scheduler environment: - DATABASE_URL=mysql+aiomysql://weibo:123456789@XX.XX.XX.XX/weibo - REDIS_URL=redis://redis:6379 depends_on: - redis networks: - weibo-network # 签到执行Worker signin-executor: build: context: ./backend dockerfile: Dockerfile target: signin_executor container_name: weibo-signin-executor environment: - DATABASE_URL=mysql+aiomysql://weibo:123456789@XX.XX.XX.XX/weibo - REDIS_URL=redis://redis:6379 - PROXY_POOL_URL=http://proxy-pool:8080 - BROWSER_AUTOMATION_URL=http://browser-automation:3001 depends_on: - redis networks: - weibo-network # 通知中心服务 notification-hub: build: context: ./backend/notification_hub dockerfile: Dockerfile container_name: weibo-notification-hub ports: - "8002:8000" environment: - REDIS_URL=redis://redis:6379 depends_on: - redis networks: - weibo-network # 浏览器自动化服务 browser-automation: build: context: ./backend/browser_automation_service dockerfile: Dockerfile container_name: weibo-browser-automation ports: - "3001:3000" environment: - PLAYWRIGHT_BROWSERS_PATH=/app/browsers volumes: - browser_data:/app/browsers networks: - weibo-network # 代理池管理器 proxy-pool: build: context: ./elk-stack/proxy_pool dockerfile: Dockerfile container_name: weibo-proxy-pool ports: - "8080:8080" networks: - weibo-network # 浏览器指纹生成器 fingerprint-generator: build: context: ./browser_fingerprint_generator dockerfile: Dockerfile container_name: weibo-fingerprint-generator ports: - "8081:8080" networks: - weibo-network volumes: redis_data: browser_data: networks: weibo-network: driver: bridge