Files
user-system/docker-compose.yml
long-agent 3b0bcf0ff7 fix: P0问题修复 - JWT配置、安全扫描、备份、Runbook
P0 问题修复(按照 gap analysis):

1. JWT密钥配置修复
   - config.yaml 移除占位符,改为空字符串
   - 添加测试验证 JWT_SECRET 环境变量覆盖功能

2. Docker 部署完善
   - 添加 deploy.resources 限制(内存 512M,CPU 0.5)
   - 添加 healthcheck 健康检查
   - 添加 restart: unless-stopped 重启策略

3. 安全扫描集成
   - 创建 scripts/security/run-gosec.sh 安全扫描脚本
   - 创建 scripts/security/workflow-template.yml CI工作流模板
   - 运行 gosec 扫描发现 6 个 HIGH 级别整数溢出问题

4. 备份自动化
   - 创建 scripts/backup/backup.sh 自动备份脚本
   - 支持 SQLite 数据库和配置文件备份
   - 支持备份验证、自动清理、恢复功能

5. Runbook 文档
   - 创建 docs/runbooks/ 目录
   - 添加 4 个核心 Runbook:服务启动、服务停止、备份恢复、日志分析
   - 添加 README.md 索引文档
2026-04-08 22:31:43 +08:00

57 lines
1.1 KiB
YAML

version: '3.8'
# 用户管理系统 - Docker 部署配置
# 使用 SQLite 数据库,无需额外数据库服务
#
# 使用方法:
# docker compose up -d # 启动服务
# docker compose logs -f # 查看日志
# docker compose down # 停止服务
#
# 访问: http://localhost:8080
services:
# 用户管理服务
app:
build:
context: .
dockerfile: Dockerfile
container_name: user-management-app
restart: unless-stopped
ports:
- "8080:8080"
volumes:
# 持久化 SQLite 数据库
- app-data:/app/data
# 持久化日志
- app-logs:/app/logs
environment:
- TZ=Asia/Shanghai
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
reservations:
memory: 256M
cpus: '0.25'
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/api/v1/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
- user-ms-network
volumes:
app-data:
driver: local
app-logs:
driver: local
networks:
user-ms-network:
driver: bridge