55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
services:
|
|
app:
|
|
build: .
|
|
container_name: quanyixiaozhushou-app
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- PORT=3000
|
|
- NODE_ENV=production
|
|
- WECHAT_APPID=wxa83262674846ca1a
|
|
- WECHAT_APPSECRET=365653aa1214a5523a6a0e7d793eec6a
|
|
- MONGODB_URI=mongodb://mongo:27017/quanyixiaozhushou
|
|
- JWT_SECRET=your_jwt_secret_key_here_change_in_production
|
|
- JWT_EXPIRES_IN=7d
|
|
- LOG_LEVEL=info
|
|
- BAIDU_OCR_API_KEY=IfYLOLzL6X60h5UOdnkX6OmT
|
|
- BAIDU_OCR_SECRET_KEY=wGXbp6DwazDghJ1EXtjAT7XAFwJLqVD4
|
|
- SERVER_URL=https://api-miniapp.dxz99wyr.cn
|
|
- EXPORT_ENCRYPT_KEY=QuanYiXiaoZhuShou_2026_Secret_Key
|
|
- ADMIN_KEY=quanyiAdmin2026
|
|
volumes:
|
|
- uploads_data:/app/public/uploads
|
|
- ./public/avatars:/app/public/avatars
|
|
depends_on:
|
|
mongo:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
mongo:
|
|
image: mongo:7.0
|
|
container_name: quanyixiaozhushou-mongo
|
|
restart: unless-stopped
|
|
ports:
|
|
- "27018:27017"
|
|
volumes:
|
|
- mongo_data:/data/db
|
|
environment:
|
|
- MONGO_INITDB_DATABASE=quanyixiaozhushou
|
|
healthcheck:
|
|
test: echo 'db.runCommand("ping").ok' | mongosh --quiet
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 20s
|
|
|
|
volumes:
|
|
uploads_data:
|
|
mongo_data:
|