基础平台 Docker 编排

用户本轮明确要求 Docker 排布,本规格落实宪法与路线图已有的单机部署范围。依据见 ADR-003,不涉及实验业务或范围外平台能力。

交付与验收

编号 需求 可验证结果
FR-001 以 Compose 统一组织数据库、core、web 和入口 配置静态解析退出 0;一条 up --build 命令启动全部健康服务
FR-002 数据库只在内部网络可达,入口只向本机发布 数据库主机端口映射为 0;只有 gateway 的 loopback 入口
FR-003 数据库数据使用命名卷持久化 写入 1 条临时探针,容器重启后读取到同一条记录,再清理探针
FR-004 凭证不写入 Compose 明文配置,生成流程不覆盖既有值 secret 准备连续执行 2 次,文件摘要不变;配置与日志不展示密码
FR-005 入口不承载业务权限,应用镜像独立构建 /api 路径只转发 core;core/web 多阶段镜像可分别构建
FR-006 运行时使用非 root、只读根和限定临时写入 入口在非 root/只读/tmpfs 条件下配置检查成功;应用运行在业务镜像阶段再验收
FR-007 本地 HTTP 与公网安全条件明确区分 本地显式覆盖 Cookie 设置;未配置 TLS 时不宣称可公网部署

健康检查仅证明组件可用,不等于注册、登录、权限或会话功能通过。当前实现与未完成项以验证报告(本地资料,未发布)为准。

任务状态

  • [X] D001:建立 Compose、内部网络、命名卷、健康依赖与文件型 secret;静态配置检查通过。
  • [X] D002:在专用引擎验证 PostgreSQL 健康与重启持久性;未公开数据库端口。
  • [X] D003:在非 root、只读容器验证 nginx 配置;转发无业务规则。
  • [X] D004:构建并运行 core/web 业务镜像,验证全部健康状态和同源 API 闭环;真实浏览器 12 项通过。
  • [ ] D005:将完整产品验收接入独立容器测试库与新项目 CI,保留日志证据。

core/web 镜像、Compose build 与 up --build 已实际通过,本地/验收两栈均健康;后端 52 项及浏览器 12 项有独立证据。D005 的独立库部分已落实,新 CI 尚未接入,保持未完成。Compose 属于独立骨架交付,不塞入鉴权任务清单的 Final Phase。

[SPEC-KIT APPENDED 2026-10-29] FR-002 的不发布数据库适用于本地应用/部署栈;独立验收栈显式使用 loopback 55432 和测试桥接供 JVM 测试,不能将测试 override 用于公网部署。Cloudflare 托管的 lab-edu.team 仅用于命名与后续发布规划,本次没有公网 DNS/TLS 发布。