Skip to content

CI: build the examples/docker reference image against a freshly scaffolded project #2908

Description

@os-zhuang

背景

PR #2907 新增了 examples/docker/(可复制进 npm create objectstack 项目的参考 Dockerfile / docker-compose),并被 deployment/self-hosting 文档引用。文件内容与已验证的裸机流程(npm ci → npx os build → os start + /api/v1/health 探针)一一对应,但镜像构建本身没有 CI 覆盖(开发会话环境无 docker daemon,无法本地验证)。

按 Prime Directive #10(不演示运行时未交付的能力),这个缺口应由 CI 补上,否则参考 Dockerfile 会像 create-objectstack 模板一样静默腐化(见 #2907 描述:模板锁 ^6.0.0 直到 14.x 才被发现)。

建议

新增一个 workflow job(或并入现有 CI),在 ubuntu runner 上:

  1. node packages/create-objectstack/bin/create-objectstack.js smoke --skip-install --skip-skills(用仓库内构建的 dist,验证模板与脚手架本身)
  2. examples/docker/{Dockerfile,docker-compose.yml,.dockerignore} 复制进生成的项目
  3. docker build 该项目(GitHub runner 自带 docker)
  4. docker run + 轮询 GET /api/v1/health,非 200 即失败

这同时给了脚手架端到端链路(scaffold → install → build → boot)一个持续回归门,正是 #2907 手工做过的验证的自动化版本。

参考

  • examples/docker/README.md 中的使用步骤即为 job 脚本蓝本
  • 健康/就绪端点:/api/v1/health/api/v1/readypackages/runtime/src/http-dispatcher.ts

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions