
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/WPMedia/fusion/actions/workflows/run-tests.yml/badge.svg?event=push](https://github.com/WPMedia/fusion/actions/workflows/run-tests.yml) https://github.com/WPMedia/fusion/actions/workflows/build-deploy.yml/badge.svg?event=push](https://github.com/WPMedia/fusion/actions/workflows/build-deploy.yml)
PageBuilder Engine 是一个服务端+客户端渲染引擎,设计用于由多个独立页面组成、且这些页面共享少量可能频繁变化的模板的网站。
由于 PageBuilder Engine 依赖私有 @wpmedia 作用域的包,您必须在许多安装或构建步骤中设置环境变量 GITHUB_TOKEN。确保该令牌至少启用了 read_packages 权限,并且已通过 WPMedia SSO 授权。
PageBuilder Engine 使用单个 master 分支生成软件的多个版本,这些版本除了运行的 Node 版本外完全相同。这旨在简化客户的升级过程,因为客户通常因主要版本发布中可能存在的破坏性代码和配置变更而不愿升级。为确保前后兼容性,所有自动化测试均针对所有受支持和即将支持的 Node 版本运行。
由于各个 Engine 版本的次要和补丁版本并不总是对齐,它们的版本可以单独递增。此过程通过 @changesets/cli 包管理,该包对 .versions 文件夹中的虚拟包进行操作。每个虚拟包对应一个受支持的 Engine 版本,版本号在 GitHub Actions CI 流程中自动计算和分配。
.versions/README.md。合并到 master 分支将触发正式生产版本,前提是(且仅当)仓库中没有变更集文件。如果检测到变更集文件,则会触发 canary 版本。
您可以直接从该仓库运行 Engine,或使用 https://github.com/wpmedia/fusion-cli%E3%80%82%E4%B8%A4%E8%80%85%E7%9A%84%E8%AE%BE%E7%BD%AE%E6%9C%89%E6%89%80%E4%B8%8D%E5%90%8C%EF%BC%8C%E4%BD%86%E9%80%9A%E8%BF%87%E6%9C%80%E5%B0%91%E7%9A%84%E9%85%8D%E7%BD%AE%E5%8F%AF%E5%AE%9E%E7%8E%B0%E7%9B%B8%E5%90%8C%E7%9A%84%E8%BF%90%E8%A1%8C%E6%97%B6%E7%BB%93%E6%9E%9C%E3%80%82%E4%BB%A5%E4%B8%8B%E6%AD%A5%E9%AA%A4%E6%8F%8F%E8%BF%B0%E5%A6%82%E4%BD%95%E4%BB%8E%E8%AF%A5%E4%BB%93%E5%BA%93%E8%BF%90%E8%A1%8C Engine:
~/fusion 运行 npm inpm run start:admin单元测试使用 Jest,将混合使用从根 package.json 安装的包和从每个镜像(engine、resolver 等)内的 package.json 文件安装的包。如果遇到意外错误,请确保在每个文件夹中运行 npm i。
Engine 中的路由涉及两个主要组件:
第三个组件是 https://github.com/WPMedia/pagebuilder-resolver/blob/main/resolver-generator/README.md%EF%BC%8C%E5%BD%93%E5%9C%A8 PageBuilder UI 中修改 Resolver 时,它会创建 resolver Lambda,但不执行任何实际路由。
Fusion engine 包含核心渲染功能。
Fusion 管理界面当前构建于 https://github.com/wpmedia/pb-web/tree/fusion-admin 的
fusion-admin分支。
管理界面为最终用户提供网站内容管理功能。最终目标是用 pb-admin 替换 pb-web。
Engine 开发者体验主要包括:
以下是 Fusion 组件发出的可用指标列表
| 指标 | 描述 | 标签 |
|---|---|---|
arc.fusion.origin.latency | Origin 请求时间(毫秒) | nile_env:[Origin Nile 环境] environment:[Arc Org-Env] arcSite:[Arc 站点] |
| 指标 | 描述 | 标签 |
|---|---|---|
arc.fusion.cacheproxy.request_time | Cache Proxy 总请求时间(毫秒) | nile_env:[Cache-proxy Nile 环境] environment:[Arc 组织(无环境)] requestMethod:[GET, PUT, POST, DELETE] |
arc.fusion.cacheproxy.upstream_response_time | 上游(Elasticache 集群)延迟(毫秒) | nile_env:[Cache-proxy Nile 环境] environment:[Arc 组织(无环境)] requestMethod:[GET, PUT, POST, DELETE] |
| 指标 | 描述 | 标签 |
|---|---|---|
arc.fusion.cache.bytes | 返回的缓存对象大小(字节) | operation: [fetch] result:[success]source: [内容源名称] |
arc.fusion.cache.latency | 内容缓存延迟(毫秒) | operation: [fetch] result:[success, miss, error]source: [内容源名称] |
arc.fusion.compile.latency | 生成渲染的时间(毫秒) | operation: [generate, setup, compile] |
arc.fusion.content.bytes | 内容长度(字节) | operation:[fetch]source:[内容源名称] |
arc.fusion.content.latency | 从源获取内容的延迟(毫秒) | operation:[fetch]result:[success, error]source:[内容源名称] |
arc.fusion.content.tracing.start | 内容追踪开始信息 | rootId:[调用请求的 ID]traceId:[当前请求的 ID]source:[内容源名称]query:[内容源查询] |
arc.fusion.content.tracing.end | 内容追踪结束信息 | rootId:[调用请求的 ID]traceId:[当前请求的 ID]status:[状态码]source:[内容源名称]query:[内容源查询]value:[HTTP 请求持续时间(毫秒)] |
arc.fusion.db.latency | 执行数据库操作的持续时间(毫秒) | operation:[find, findOne, get, put] |
arc.fusion.render.latency | 渲染组件的时间(毫秒) | render:[component] collection: [output-type, layout feature, chain] type:[feature type] |
PageBuilder Engine 发布记录在 此处的 Confluence(内部),并在 此处的 ALC 向客户公开显示。
有关发布新 Engine 版本的详细信息,请参见 ./documentation/maintainers/PUBLISH.md。
Jenkinsfile(见下文示例)groovypipeline { agent any stages { stage('Hello') { steps { echo 'Hello from repo branch' } } } }
前提条件:要通过 SSH 连接到构建服务器,您需要 pem 证书。请向 engine 团队成员索取。
chmod 400 [pem 文件路径] 为您的 pem 文件添加 400 权限ssh -i [pem 文件路径] centos@10.72.240.113docker exec -ti jenkins bashsudo docker exec -it --user root jenkins bash /data/jenkins/ /var/jenkins_home
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务