新闻详情

新闻详情

首页 / 资讯中心 / 详情

wp-calypso部署手册:Docker构建与production、stage、horizon多环境配置模式全解析

发布时间:2026/11/4 13:36:09来源:尧图网络
wp-calypso部署手册:Docker构建与production、stage、horizon多环境配置模式全解析
wp-calypso部署手册Docker构建与production、stage、horizon多环境配置模式全解析【免费下载链接】wp-calypsoThe JavaScript and API powered WordPress.com项目地址: https://gitcode.com/gh_mirrors/wp/wp-calypsowp-calypso 是 WordPress.com 的 JavaScript 前端应用一套代码、多个环境。它的核心部署能力在于通过 config/ 目录下按环境命名的 JSON 配置文件配合 Docker 多阶段构建让同一份构建产物在 production、stage、horizon、development 等环境间灵活切换并借助 feature flags功能开关实现灰度发布。本文带你快速掌握 wp-calypso 的 Docker 构建流程与多环境配置模式。多环境配置一览production、stage、horizon 各是什么所有环境配置集中在 config/ 目录每个环境一个 JSON 文件环境标识CALYPSO_ENV配置文件env_id典型域名用途productionproduction.jsonproductionwordpress.com正式生产环境stagestage.jsonstagewordpress.com预发生产预演配置几乎与生产一致horizonhorizon.jsonhorizonhorizon.wordpress.com独立预发布域名先于 stage 验证wpcalypsowpcalypso.jsonwpcalypsowpcalypso.wordpress.com内部测试环境developmentdevelopment.jsondevelopmentcalypso.localhost:3000本地开发几个关键点stage 与 horizon 都声明env: production但env_id和hostname不同如 horizon.json 的hostname为horizon.wordpress.com并使用独立 favicon。这样它们继承生产的构建与密钥体系同时拥有独立的访问入口。_shared.json 是所有环境的公共默认值各环境文件只写差异项避免大量重复。客户端可见性由 client.json 白名单控制只有列在其中的 key如features、login_url才会随初始请求发送到浏览器。配置是如何被选中的服务端启动逻辑在 client/server/config/index.jsenv: process.env.CALYPSO_ENV || process.env.NODE_ENV || development也就是说优先读CALYPSO_ENV其次NODE_ENV默认development。改一个环境变量即可切换整套环境配置。Docker 构建一个 Dockerfile 跑通整个部署wp-calypso 的 Docker 构建由根目录 Dockerfile 驱动采用多阶段构建 依赖层缓存的设计理解它只要看懂四个阶段缓存阶段cache_mode通过ARG cache_modeseed选择是否预热 yarn 缓存builder-cache-seed从 cache-seed 镜像复制.cache与.yarn目录大幅加速 CI 构建。依赖阶段deps只先复制 package.json、yarn.lock 和各 workspace 的 manifest 再执行yarn install --immutable。源文件变化不会破坏这一层缓存——这是 Docker 构建提速的关键。其中 env-config.sh 是占位脚本供部署系统覆盖 apt/npm 镜像源本地默认为空文件以保证该层缓存稳定命中。构建阶段builder完整复制源码后设置CALYPSO_ENVproduction、NODE_ENVproduction执行yarn run build并删除全部 sourcemapfind /calypso/build /calypso/public -name *.*.map -delete保证生产产物干净构建结束还会检查缓存失效日志bin/check-log-for-cache-invalidation.sh。运行阶段app切换到轻量的node:alpine只拷贝build/、public/、config/ 目录以nobody 非 root 用户tini进程管理器启动node build/server.js。一条命令构建与运行仓库自带了构建与运行脚本# 构建镜像自动注入 git commit SHA 作为构建参数 yarn build-docker # 实际调用 bin/build-docker.js # 运行默认 production 配置容器 3000 端口映射到主机 80 端口 yarn docker # docker run -it --rm -p 80:3000 wp-calypso # 其他产品线部署只需换 CALYPSO_ENV yarn docker-jetpack-cloud # CALYPSO_ENVjetpack-cloud-production yarn docker-dashboard # CALYPSO_ENVdashboard-productionyarn build-docker背后的 bin/build-docker.js 会把git rev-parse HEAD作为commit_sha传入镜像方便线上排查版本。此外 Dockerfile.base 和 Dockerfile.cache-seed 分别提供基础构建镜像与缓存预热镜像供 CI 流水线复用。feature flags多环境灰度发布的灵魂每个环境 JSON 里都有一个巨大的features对象。同一功能可以在不同环境开不同的值——这就是灰度发布机制。官方建议的环境递进路径见 config/README.mddevelopment → wpcalypso → horizon → stage → production功能应从左侧环境逐级开启若某功能已在 horizon 开启则其左侧的 development、wpcalypso 也应开启。上线 production 后应清理对应的 flag 判断保持代码整洁。实用操作速查本地开关 flagENABLE_FEATURESsome/flag-name DISABLE_FEATURESreader yarn startURL 开关 flag仅 development/staging 等production 禁用?flagsfoo,-bar搜索 flag 定义位置yarn feature-search 关键词工具是 bin/feature-search.js新增 flag 时请按字母序添加到所有配置文件development、production、horizon、stage 等本地快速部署路径如果只是想在本机跑起来验证部署流程完整说明见 docs/install.md在 hosts 文件添加127.0.0.1 calypso.localhostyarn yarn start浏览器访问http://calypso.localhost:3000加速构建SECTION_LIMITreader,login yarn start只构建指定 section本地实验 flag在仓库根目录创建.env写入ACTIVE_FEATURE_FLAGSxxx部署要点清单✅ 环境切换只认CALYPSO_ENV其次NODE_ENV默认 development✅ stage/horizon 复用 production 构建env: production靠env_id与hostname区分入口✅ Docker 构建先拷依赖清单后拷源码善用层缓存✅ 生产镜像自动删除 sourcemap并以 nobody 用户运行✅ 灰度发布严格按 development → wpcalypso → horizon → stage → production 推进更多细节参考config/README.md配置体系、docs/install.md安装运行、docs/development-workflow.md开发工作流。【免费下载链接】wp-calypsoThe JavaScript and API powered WordPress.com项目地址: https://gitcode.com/gh_mirrors/wp/wp-calypso创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/3 7:07:39

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/3 12:09:35

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/3 12:09:38

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/4 12:33:12

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/4 1:25:31

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/4 3:51:11

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉