优化docker容器
This commit is contained in:
@@ -1,170 +1,85 @@
|
||||
version: '3.8'
|
||||
|
||||
# ============================================================
|
||||
# Weibo-HotSign Docker Compose
|
||||
# 使用方式:
|
||||
# 1. 填写下方 x-db-env 中的 MySQL/Redis 密码
|
||||
# 2. docker-compose up -d --build
|
||||
# 3. 访问 http://localhost:5000
|
||||
# ============================================================
|
||||
|
||||
# 共享环境变量(避免重复)
|
||||
x-db-env: &db-env
|
||||
DATABASE_URL: "mysql+aiomysql://weibo:123456@host.docker.internal:3306/weibo_hotsign?charset=utf8mb4"
|
||||
REDIS_URL: "redis://:123456@host.docker.internal:6379/0"
|
||||
USE_REDIS: "true"
|
||||
JWT_SECRET_KEY: "change-me-to-a-random-string-in-production"
|
||||
JWT_ALGORITHM: "HS256"
|
||||
JWT_EXPIRATION_HOURS: "24"
|
||||
COOKIE_ENCRYPTION_KEY: "change-me-to-a-32byte-key-prod!"
|
||||
WX_APPID: ""
|
||||
WX_SECRET: ""
|
||||
ENVIRONMENT: "production"
|
||||
|
||||
services:
|
||||
# Redis缓存服务
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: weibo-redis
|
||||
# 认证服务 (端口 8001)
|
||||
auth-service:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile
|
||||
target: auth-service
|
||||
container_name: weibo-auth
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
- "8001:8001"
|
||||
environment:
|
||||
<<: *db-env
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
networks:
|
||||
- weibo-network
|
||||
- weibo-net
|
||||
|
||||
# Nginx反向代理
|
||||
nginx:
|
||||
image: nginx:alpine
|
||||
container_name: weibo-nginx
|
||||
# API 服务 (端口 8000)
|
||||
api-service:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile
|
||||
target: api-service
|
||||
container_name: weibo-api
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- "8000:8000"
|
||||
environment:
|
||||
<<: *db-env
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
depends_on:
|
||||
- api-gateway
|
||||
- frontend
|
||||
- auth-service
|
||||
networks:
|
||||
- weibo-network
|
||||
- weibo-net
|
||||
|
||||
# 前端React应用
|
||||
# Flask 前端 (端口 5000)
|
||||
frontend:
|
||||
build:
|
||||
context: ./frontend
|
||||
dockerfile: Dockerfile
|
||||
container_name: weibo-frontend
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "5000:5000"
|
||||
environment:
|
||||
- REACT_APP_API_BASE_URL=http://localhost/api/v1
|
||||
FLASK_ENV: "production"
|
||||
FLASK_DEBUG: "False"
|
||||
SECRET_KEY: "change-me-flask-secret-key"
|
||||
API_BASE_URL: "http://api-service:8000"
|
||||
AUTH_BASE_URL: "http://auth-service:8001"
|
||||
SESSION_TYPE: "filesystem"
|
||||
depends_on:
|
||||
- api-gateway
|
||||
- api-service
|
||||
- auth-service
|
||||
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:
|
||||
- weibo-net
|
||||
|
||||
networks:
|
||||
weibo-network:
|
||||
weibo-net:
|
||||
driver: bridge
|
||||
|
||||
Reference in New Issue
Block a user