171 lines
3.7 KiB
YAML
171 lines
3.7 KiB
YAML
|
|
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
|