diff --git a/.gitignore b/.gitignore index 3ae6ae9..f2587c3 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ Thumbs.db client/src/.share-done admin/node_modules/ admin/dist/ +server/data/ diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 3034591..3ddf1f0 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,19 +1,31 @@ # 生产独立编排: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 - environment: - - MONGO_INITDB_ROOT_USERNAME=${MONGO_USER:-wdkj} - - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASS:?need MONGO_PASS} 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: @@ -27,10 +39,20 @@ services: - 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 @@ -40,6 +62,12 @@ services: 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