gongxiangp2/docker-compose.yml

108 lines
3.5 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.

# 当前生产发布不使用本文件作为入口。
# 生产发布以 scripts/git-incremental-deploy.ps1 为准;本文件仅作本地/单机/基础环境参考。
# 不要按此文件推断当前线上容器启动参数、uploads 挂载或健康检查。
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: youyidian-3d-material
restart: unless-stopped
ports:
- "4320:3000"
dns:
- 223.5.5.5 # 阿里云DNS
- 8.8.8.8 # Google DNS
- 114.114.114.114 # 114DNS
# 内存限制配置(防止内存泄漏影响系统)
deploy:
resources:
limits:
memory: 6G # 硬限制:最大6GB(正常1-2GB + 缓冲2-3GB + 安全边界1GB)
reservations:
memory: 512M # 软限制:保证至少512MB
# 健康检查
healthcheck:
test: ["CMD", "node", "-e", "process.exit(0)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
environment:
- NODE_ENV=production
- DATABASE_URL=postgresql://gongxiangpan:gongxiangpan123@192.168.58.20:5432/lobechat
- DATABASE_DRIVER=node
- KEY_VAULTS_SECRET=/7DcksaICAECGjB38O3s8AE0wj2NoGzwIog0iUUMugY=
- VECTOR_DB=pgvector
- PGVECTOR_DB_URL=postgresql://gongxiangpan:gongxiangpan123@192.168.58.20:5432/lobechat
- STORAGE_PROVIDER=s3
- S3_ENDPOINT=http://192.168.58.20:9000
- S3_BUCKET=gongxiangpan
- S3_ACCESS_KEY_ID=GXPAccessKey2025
- S3_SECRET_ACCESS_KEY=GXPSecretKey2025SecureMinIO
- S3_REGION=us-east-1
- S3_PUBLIC_DOMAIN=https://s3.jiansun.vip/gongxiangpan
- S3_ENABLE_PATH_STYLE=1
- S3_SET_ACL=1
- S3_PREVIEW_URL_EXPIRE_IN=7200
- NEXT_PUBLIC_S3_FILE_PATH=由壹点AI/
- APP_PUBLIC_URL=https://sc.jiansun.vip
- NEXT_PUBLIC_DINGTALK_CALLBACK_ORIGIN=https://sc.jiansun.vip
- NEXTAUTH_URL=https://sc.jiansun.vip
# 内网地址配置(用于流量分离:内网用户走内网网络,不占用外网带宽)
- SERVER_IP=192.168.58.20
- MINIO_API_PORT=9000
- NEXTAUTH_SECRET=your-secret-key-change-this-in-production
- 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配置(用于上传会话存储)
- USE_REDIS=true
- REDIS_URL=redis://redis:6379
volumes:
- ./uploads:/app/uploads
networks:
- app-network
depends_on:
- redis
redis:
image: redis:7-alpine
container_name: gongxiangpan-redis
restart: unless-stopped
command: redis-server --maxmemory 100mb --maxmemory-policy allkeys-lru --save ""
deploy:
resources:
limits:
memory: 128M
reservations:
memory: 32M
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
networks:
- app-network
volumes:
- redis-data:/data
networks:
app-network:
driver: bridge
volumes:
redis-data: