# 生产独立编排:docker compose -f docker-compose.prod.yml up -d # 资源基线:宿主机 3.6G 内存,六容器合计限额 ~1.2G,其余留给系统/nginx/ai-art services: mongodb: image: mongo:7 restart: unless-stopped # WiredTiger 缓存压到 256M,配合容器限额防内存膨胀 command: ["--wiredTigerCacheSizeGB", "0.25"] mem_limit: 512m logging: driver: json-file options: max-size: "10m" max-file: "3" volumes: - mongo_data:/data/db dimension-server: image: dim-server:v1.3.1 restart: unless-stopped depends_on: - mongodb mem_limit: 384m logging: driver: json-file options: max-size: "10m" max-file: "3" ports: - "127.0.0.1:3001:3001" environment: - TZ=Asia/Shanghai - NODE_ENV=production - PORT=3001 - MONGODB_URI=mongodb://${MONGO_USER:-wdkj}:${MONGO_PASS}@mongodb:27017/wdkj?authSource=admin - JWT_SECRET=${JWT_SECRET:?need JWT_SECRET} - SITE_URL=https://www.wdkj.yuzhiran.com.cn - INVITE_REWARD_CREDITS=${INVITE_REWARD_CREDITS:-100} - COST_PER_WORK=${COST_PER_WORK:-10} - FREE_DAILY_QUOTA=${FREE_DAILY_QUOTA:-20} - MEMBER_DAILY_QUOTA=${MEMBER_DAILY_QUOTA:-60} volumes: # 运行数据持久化到宿主机(日志/微信支付证书),容器重建不丢 - ./server/data/logs:/app/logs - ./server/data/certs:/app/certs dimension-admin: image: nginx:alpine restart: unless-stopped mem_limit: 64m logging: driver: json-file options: max-size: "5m" max-file: "2" volumes: - ./deploy/dist/admin:/usr/share/nginx/html:ro - ./deploy/nginx/admin.conf:/etc/nginx/conf.d/default.conf:ro ports: - "127.0.0.1:3010:80" dimension-h5: image: nginx:alpine restart: unless-stopped mem_limit: 64m logging: driver: json-file options: max-size: "5m" max-file: "2" volumes: - ./deploy/dist/h5:/usr/share/nginx/html:ro - ./deploy/nginx/h5.conf:/etc/nginx/conf.d/default.conf:ro ports: - "127.0.0.1:3020:80" volumes: mongo_data: