首页/新闻资讯/正文详情

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

发布时间:2026/9/22 11:43:23 来源:云帆数科 栏目:资讯中心
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),仅供参考

相关推荐

2026最新英雄联盟无法进入游戏5大坑位全解析
2026最新英雄联盟无法进入游戏5大坑位全解析

2026最新英雄联盟无法进入游戏5大坑位全解析 屏幕一闪,报错弹窗跳出,那一长串红色的 Exception 和堆栈信息,是不是让你瞬间头大?很多老玩家遇到 英雄联盟无法进入游戏… · 2026/9/22 11:43:23

3步搞定毕业生简历模板下载:手写实战项目避坑指南
3步搞定毕业生简历模板下载:手写实战项目避坑指南

3步搞定毕业生简历模板下载:手写实战项目避坑指南 配置环境就卡半天,这大概是每个刚入行的程序员最熟悉的痛苦。你盯着屏幕上的报错信息,心里默念着“再来一次”,但现实往往是,你的实战项目还没写两行代码,IDE… · 2026/9/22 11:43:23

oppo1107环境配置避坑指南:从卡半天到跑通的最佳实践
oppo1107环境配置避坑指南:从卡半天到跑通的最佳实践

oppo1107环境配置避坑指南:从卡半天到跑通的最佳实践 配置环境就卡半天?别急,这太正常了。很多刚接触 oppo1107… · 2026/9/22 11:43:04

5分钟搞定selectcount:面试必问,别再被Stack Trace吓哭
5分钟搞定selectcount:面试必问,别再被Stack Trace吓哭

5分钟搞定selectcount:面试必问,别再被Stack Trace吓哭 刚接了个线上急单,数据库突然慢得离谱。一查日志,满屏的 java.sql.SQLException 和… · 2026/9/22 12:08:08

3步搞定手机qq2010官方下载正式版完整示例面试通关
3步搞定手机qq2010官方下载正式版完整示例面试通关

3步搞定手机qq2010官方下载正式版完整示例面试通关 学会语法却不知怎么搭项目,是很多新人的噩梦。面对【手机qq2010官方下载正式版】这类看似简单却暗藏玄机的面试题,你往往卡在“怎么落地”这一步。别慌,今天咱们不讲虚的,直接上… · 2026/9/22 12:07:55

3个坑让你血亏:每周送鲜花源码实战项目避坑指南
3个坑让你血亏:每周送鲜花源码实战项目避坑指南

3个坑让你血亏:每周送鲜花源码实战项目避坑指南 版本升级后 API 全变了,你的实战项目直接崩了?别慌,我帮你看透【每周送鲜花】源码。… · 2026/9/22 12:07:37

面试必背策划案模板,这份保姆级教程带你搞定底层逻辑
面试必背策划案模板,这份保姆级教程带你搞定底层逻辑

面试必背策划案模板,这份保姆级教程带你搞定底层逻辑 面试被问原理答不上来,这种尴尬谁没经历过?别慌,今天这篇保姆级教程,专门拆解【策划案模板】背后的硬核逻辑。… · 2026/9/22 12:07:31

图解原理:搞懂交易所交易规则,3个坑让你少写500行代码
图解原理:搞懂交易所交易规则,3个坑让你少写500行代码

图解原理:搞懂交易所交易规则,3个坑让你少写500行代码 复制来的代码跑不通不知道怎么调?别急,这通常不是语法错误,而是你对底层交易规则的理解偏差。很多开发者在对接量化交易或金融数据时,习惯性堆砌复杂的算法,却忽略了交易所最核心的撮合机制与… · 2026/9/22 12:07:25

强智科技实战避坑:3个核心模块对比让你少走弯路
强智科技实战避坑:3个核心模块对比让你少走弯路

强智科技实战避坑:3个核心模块对比让你少走弯路 官方文档那几千页PDF,谁看了不头大?刚入行的小白,拿着《强智教务系统开发指南》啃了三天,代码还是跑不通。别慌,这就是典型的 新手避坑… · 2026/9/22 12:07:25

5个电影海报图片处理坑,新手避坑指南
5个电影海报图片处理坑,新手避坑指南

5个电影海报图片处理坑,新手避坑指南 刚写完代码,一运行屏幕直接炸了。满屏红色的 StackTrace 滚得比弹幕还快,什么 NullPointerException 、 ImageIO.read() returned null 、… · 2026/9/22 0:00:07

注册微信公众账号:一文搞懂从0到1全流程
注册微信公众账号:一文搞懂从0到1全流程

注册微信公众账号:一文搞懂从0到1全流程 复制来的代码跑不通,报错信息满屏飞,到底卡在哪?别急,咱们先停下手里的调试。很多开发者觉得注册微信公众账号只是填个表单、传个身份证那么简单,真上手才发现坑深不见底。今天这篇 一文搞懂… · 2026/9/22 0:00:07

手写实现图片压缩网站核心:搞定WebP转换与质量调优
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站… · 2026/9/22 0:00:19

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码