本目录为政企合同管理系统的微服务部署交付版,部署目标为:
- 操作系统:麒麟 V10 SP3
- 数据库:南大金仓 GBADE(MySQL 兼容模式)
- AI 推理:910B 算力服务器 HTTP 推理接口
CentOS 7 仅作为应用系统部署测试环境,不作为实际生产基线。
系统边界保持不变:
- 仅管理已盖章生效合同的全生命周期
- 不包含合同起草、签署、电子签、用印流程
- 审批服务仅承接允许存在的子流程审批
本目录用于微服务部署、联调、测试和交付,不再作为旧单体版本的开发目录。
根目录保留的重点内容:
cmd/:各微服务启动入口internal/:微服务业务实现pkg/:公共组件、中间件、审计、配置、数据库、Outboxfrontend/:前端工程docs/:部署与说明文档docker-compose.microservices.yml:微服务编排文件docker-compose.production.yml:生产镜像编排文件Dockerfile.microservice:统一微服务镜像构建入口.env.microservices.example:环境变量模板
cmd/ 下当前包含:
gateway-serviceidentity-serviceaudit-servicecontract-servicedocument-serviceperformance-serviceapproval-workflow-servicerisk-serviceamendment-serviceclosure-servicearchive-servicenotification-servicereport-serviceparty-servicesearch-ai-serviceoutbox-dispatcher
优先参考以下文件:
Linux 首次部署前,建议先执行:
chmod +x scripts/*.sh如果现场脚本文件是从 Windows 工作站拷贝出来的,请先确认 shell 脚本为 Unix LF 换行;仓库已通过 .gitattributes 固定 *.sh 为 LF。如果仍遇到执行权限或 shebang 问题,可直接使用 bash scripts/<name>.sh 方式兜底执行。
JWT_SECRET 可直接在 Linux 生成,例如:
openssl rand -hex 32如果现场没有 openssl,可改用:
tr -dc 'A-Za-z0-9' </dev/urandom | head -c 64 && echo生成后的值请写入 .env,并确保网关和身份服务使用同一套 JWT_SECRET;不要把真实密钥提交到仓库。
启动示例:
docker compose --env-file .env -f docker-compose.microservices.yml up -dLinux 一键部署示例:
bash scripts/deploy-linux.sh说明:当前生产镜像构建固定使用项目内 vendor/ 依赖,不再在 Docker 构建期执行 go mod download。如果缺少 vendor/,请先在联网环境执行 go mod vendor,或使用 bash scripts/prepare-offline-bundle.sh 生成并同步离线依赖。
如需先单独校验 vendor/ 是否和当前 go.mod 一致,可执行:
bash scripts/sync-vendor-check.sh为避免下游微服务短时故障直接拖垮主业务链路,生产模式下已将以下“写后派生动作”切换为 outbox + dispatcher 异步投递:
performance-service -> risk-servicerisk-service -> notification-serviceclosure-service -> archive-service
边界说明:
- 合同结案前的绩效检查、未关闭风险检查仍保持同步,这是强一致业务门禁,不能异步化。
outbox-dispatcher现在在docker-compose.production.yml中按常驻 worker 运行,默认每10s轮询一次待投递事件。- 如需调整频率,可在
.env中配置OUTBOX_DISPATCH_MODE、OUTBOX_DISPATCH_INTERVAL、OUTBOX_DISPATCH_LIMIT。
为避免旧单体代码和微服务交付目录混用,历史单体源码、旧运行产物、旧日志和旧可执行文件已归档到:
_legacy_monolith_archive/
该归档目录仅用于历史追溯,不作为当前微服务交付入口。
部署前建议继续完成以下检查:
- 按麒麟 V10 SP3 / GBADE / 910B 环境修正
.env - 生产环境优先校验
docker-compose.production.yml,联调环境再校验docker-compose.microservices.yml - 清理或替换默认密钥与测试账号配置
- 使用
scripts/deploy-linux.sh做前后端一键部署和失败诊断