为历史代码清理后的 DataOps Platform 建立可重复启动、可销毁、不会访问生产数据服务的本地验收环境,并把该环境作为后续 RBAC、DataFlow–n8n 版本映射、数据治理知识库和工作台迭代的共同验证基线。
dataops-test Compose 项目名、独立命名卷和高位宿主机端口;销毁环境必须显式执行 down -v。app/ 是后端唯一源码;Docker 镜像不得从 deployment/app/ 构建。| 服务 | 容器端口 | 宿主机端口 | 说明 |
|---|---|---|---|
| frontend | 80 | 18183 | Nginx 承载 SPA,并把 /api/ 代理到 backend |
| backend | 5500 | 15500 | Gunicorn + Flask |
| postgres | 5432 | 15432 | dataops 与 n8n 两个隔离数据库 |
| neo4j | 7474 / 7687 | 17474 / 17687 | 图数据和浏览器管理界面 |
| minio | 9000 / 9001 | 19000 / 19001 | 对象 API 和控制台 |
| n8n | 5678 | 15678 | 执行编排与 API |
flowchart LR
P["PostgreSQL healthy"] --> N["n8n"]
P --> B["Backend"]
G["Neo4j healthy"] --> B
M["MinIO healthy"] --> I["Bucket init complete"]
I --> B
B --> F["Frontend / Nginx"]
Compose 只把基础设施健康作为启动依赖。最终验收另外检查:前端首页、后端系统健康、PostgreSQL 初始化表、Neo4j 连通、MinIO bucket、n8n /healthz,以及后端日志中不存在生产域名和生产内网地址。
PostgreSQL 官方入口按顺序执行:
\ir 执行 database/ 中当前保留的六个 SQL 文件。users 表并写入 admin 测试账号。现有认证仅使用 Base64 密码和 is_admin 标记,属于已知 P0 技术债。正式三角色 RBAC、密码哈希、JWT 和管理员创建用户由下一轮独立计划替换,本测试账号不得复制到其他环境。
.env.local 或当前 shell 注入。N8N_API_KEY 注入后端。未完成该步骤时 n8n 容器健康,但平台 n8n 管理 API 会明确显示未授权。docker compose config 成功,且渲染结果中不存在 192.168.3.143、company.citupro.com、n8n.citupro.com。running,有健康检查的服务均为 healthy。GET http://localhost:18183/ 返回 200。GET http://localhost:18183/api/system/health 返回业务码 200,PostgreSQL 和 Neo4j 均为 true。users、data_orders、data_products、metadata_review_records、metadata_version_history、task_list。dataops-bucket。GET http://localhost:15678/healthz 返回 200。