
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
PCIC Climate Explorer 前端镜像是PCIC Climate Explorer的前端界面实现,基于Node.js、React.js、Webpack、Babel等现代前端技术栈(ES6+)构建。该镜像提供气候数据的可视化与探索界面,通过配置环境变量可连接后端气候数据服务、地图瓦片服务等,支持开发和生产环境部署。
环境变量配置
前端配置通过环境变量实现,关键变量如下:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
| NODE_ENV | 环境类型,设为"production"启用生产构建优化 | "development" |
| CE_BACKEND_URL | 后端气候数据的公开可访问URL | 开发:http://localhost:8000/api 生产:[***] |
| TILECACHE_URL | 基础地图图层的Tilecache URL | [***] |
| NCWMS_URL | 气候图层的ncWMS URL | [***] |
| CE_ENSEMBLE_NAME | 后端请求使用的集合名称 | "ce" |
| CE_BASE_PATH | 前端应用的URL基础路径(用于代理服务器配置) | 无默认值,生产环境需指定(如"/marmot/app") |
Docker部署
构建Docker镜像
克隆代码仓库:
bashgit clone https://github.com/pacificclimate/climate-explorer-frontend cd climate-explorer-frontend
构建镜像:
bashdocker build -t pcic/climate-explorer-frontend-image .
运行Docker镜像
运行时需设置以下环境变量(生产环境必须配置):
bashdocker run --restart=unless-stopped -d \ -p <外部端口>:8080 \ -e NODE_ENV=production \ -e CE_BACKEND_URL=https://services.pacificclimate.org/marmot/api \ -e CE_ENSEMBLE_NAME=ce \ -e NCWMS_URL=https://services.pacificclimate.org/marmot/ncwms \ -e TILECACHE_URL=https://tiles.pacificclimate.org/tilecache/tilecache.py \ -e CE_BASE_PATH=/marmot/app \ --name climate-explorer-frontend \ pcic/climate-explorer-frontend:latest
说明:
NODE_ENV设为"production"启用生产模式;CE_BACKEND_URL为后端API基础URL;CE_BASE_PATH需与代理服务器配置的路径一致。
开发环境设置
依赖安装与启动
bash# 安装依赖 npm install # 启动开发服务器(带热模块替换) npm start
测试
bash# 运行单元测试 npm test
代码检查(Linting)
使用ESLint(基于AirBnb预设)进行代码检查:
bash# 检查所有文件 npm run lint # 检查指定文件或匹配模式 npm run lint:glob <文件名或glob模式>
可通过git/hooks/pre-commit-eslint钩子在提交前检查 staged 的.js文件(仅阻止错误,警告允许),安装至.git/hooks目录即可启用。如需跳过检查,可使用git commit --no-verify(不推荐)。
版本发布步骤:
package.json中的version字段NEWS.md中总结自上次版本的变更bashgit add package.json NEWS.md git commit -m"Bump to version x.x.x" git tag -a -m"x.x.x" x.x.x git push --follow-tags
代码风格遵循ESLint配置,主要基于AirBnb预设。常见需注意的规则(按违规频率排序):
// 注释...而非//comment...)if和for与左括号间需加空格(if (cond)而非if(cond))const或let声明变量(优先const),避免var(const和let具有块级作用域)
for (const prop in obj),遍历可迭代对象使用for (const val of iterable),计数循环使用for (let i = 1; i < n; i++)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务