gongxiangp2/docker-compose.shadow.yml
chenpei cd6e40d9d2 优化:网络传输性能和稳定性 - TCP缓冲区+并发控制优化
主要改动:
1. TCP缓冲区优化(16MB)- 解决公网上传速度慢问题
2. 并发数降低到1-3 - 避免4并发导致ERR_CONNECTION_RESET
3. 动态并发控制 - 根据网络环境自动调整
4. Nginx超时增加到120s - 支持大分片上传
5. 上传进度修复 - 修复剩余时间计算
6. 新增任务-页面上传器和详情组件
7. 统一部署文档为deploy-remote-build.ps1

问题修复:
- 公网用户上传从200-900KB/s提升到预期3-5MB/s
- 内网用户上传更稳定,无连接重置错误
- UploadProgress组件剩余时间计算修正

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-27 09:33:09 +08:00

105 lines
3.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: '3.8'
services:
redis-shadow:
image: redis:7-alpine
container_name: youyidian-3d-redis-shadow
restart: unless-stopped
ports:
- "6380:6379" # 影子系统使用 6380 端口,避免与正式系统冲突
volumes:
- redis-shadow-data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- app-shadow-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
app-shadow:
image: youyidian-3d-material:local-deploy
# build:
# context: .
# dockerfile: Dockerfile
container_name: youyidian-3d-material-shadow
restart: unless-stopped
ports:
- "5320:3000" # 影子系统使用 5320 端口,正式系统是 4320
# 内存限制配置(防止内存泄漏影响系统)
deploy:
resources:
limits:
memory: 6G # 硬限制:最大6GB
reservations:
memory: 512M # 软限制:保证至少512MB
# 健康检查
healthcheck:
test: ["CMD", "node", "-e", "process.exit(0)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
dns:
- 223.5.5.5 # 阿里云DNS
- 8.8.8.8 # Google DNS
- 114.114.114.114 # 114DNS
environment:
- NODE_ENV=production
- UPLOAD_DIR=/app/uploads
# 影子系统连接到 stage 数据库(需要先创建 lobechat_stage 数据库)
- DATABASE_URL=postgresql://gongxiangpan:gongxiangpan123@192.168.58.20:5432/lobechat_stage
- DATABASE_DRIVER=node
- KEY_VAULTS_SECRET=/7DcksaICAECGjB38O3s8AE0wj2NoGzwIog0iUUMugY=
- VECTOR_DB=pgvector
- PGVECTOR_DB_URL=postgresql://gongxiangpan:gongxiangpan123@192.168.58.20:5432/lobechat_stage
- STORAGE_PROVIDER=s3
- S3_ENDPOINT=http://192.168.58.20:9000 # 内网地址,服务器直接访问不走FRP
- S3_BUCKET=gongxiangpan
- S3_ACCESS_KEY_ID=GXPAccessKey2025
- S3_SECRET_ACCESS_KEY=GXPSecretKey2025SecureMinIO
- S3_REGION=us-east-1
- S3_PUBLIC_DOMAIN=https://s3.yydd.ai/gongxiangpan
- S3_ENABLE_PATH_STYLE=1
- S3_SET_ACL=1
- S3_PREVIEW_URL_EXPIRE_IN=7200
- NEXT_PUBLIC_S3_FILE_PATH=由壹点AI/
# 影子系统使用独立的 URL,避免与正式系统登录态混淆
- NEXTAUTH_URL=http://192.168.58.20:5320
# 内网地址配置(用于流量分离:内网用户走内网网络,不占用外网带宽)
- SERVER_IP=192.168.58.20
- MINIO_API_PORT=9000
- NEXTAUTH_SECRET=your-secret-key-change-this-in-production-shadow
- GEMINI_API_KEY=sk-NqhrkeBudn6pUtStnOuOnGyDfasogvFSsex4YgjDXJU3SK3E
- GEMINI_API_BASE_URL=https://api.huandutech.com/v1
- GEMINI_MODEL=gemini-2.0-flash-exp
- DINGTALK_CLIENT_ID=ding1bs1gxwrcfu16x0f
- DINGTALK_CLIENT_SECRET=qUmj_gBDzpPEYR3RA3hRqKzwu11a986O-wKfP8V5lDHXn7XJrXxW79KIeP5G-mcY
- VIDEO_TRANSCODE_CODEC=libx265
- VIDEO_TRANSCODE_PRESET=medium
- VIDEO_TRANSCODE_CRF=22
- VIDEO_AUDIO_BITRATE=160k
# 下载 Token 密钥(用于外部接口文件下载鉴权)
- DOWNLOAD_TOKEN_SECRET=yydd-product-package-download-token-secret-2026
# Redis配置(影子系统使用独立的 Redis 实例)
- USE_REDIS=true
- REDIS_URL=redis://redis-shadow:6379
volumes:
- ./uploads-shadow:/app/uploads # 影子系统使用独立的 uploads 目录
depends_on:
redis-shadow:
condition: service_healthy
networks:
- app-shadow-network
volumes:
redis-shadow-data:
driver: local
networks:
app-shadow-network:
driver: bridge