
如果你使用 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 Backend是太平洋气候影响联盟(PCIC)气候探索器的后端服务组件,基于Flask框架开发。主要用于处理气候数据相关的API请求,支持与PostgreSQL等数据库交互,提供数据查询、处理和集成功能,适用于气候数据研究、后端服务开发及多环境部署场景。
系统依赖安装
bash$ sudo apt-get install libpq-dev python-dev libhdf5-dev libnetcdf-dev libgdal-dev
GDAL环境变量配置
GDAL在安装Python包时无法正确获取库路径,需手动定义以下环境变量:
bash$ export CPLUS_INCLUDE_PATH=/usr/include/gdal $ export C_INCLUDE_PATH=/usr/include/gdal
虚拟环境安装
使用Python 3的venv模块(不建议使用virtualenv,因其默认安装Python 2)。单元测试依赖datetime.timezone,该特性仅Python 3支持。
bash$ python3 -m venv venv $ source venv/bin/activate (venv)$ pip install -U pip (venv)$ pip install -i https://pypi.pacificclimate.org/simple/ -r requirements.txt (venv)$ pip install -e .
运行开发服务器
可通过Flask命令行工具启动本地开发服务器(详见Flask CLI文档)。需设置环境变量FLASK_APP=ce.wsgi:app,可选设置FLASK_DEBUG=1启用代码热重载。
数据库连接串通过MDDB_DSN环境变量配置,默认值为postgresql://httpd_meta@monsoon.pcic.uvic.ca/pcic_meta。
bash(venv)$ MDDB_DSN=postgresql://dbuser:dbpass@dbhost/dbname FLASK_APP=ce.wsgi:app flask run -p <端口号>
虚拟环境内测试
bashpip install pytest py.test -v
使用Docker容器测试本地代码
bashsudo docker run --rm -it -v ${PWD}:/app --name backend-test pcic/climate-explorer-backend bash -c "pip install pytest; py.test -v ce/tests"
使用Docker容器测试远程代码变更
bashsudo docker run --rm -it --name backend-test pcic/climate-explorer-backend bash -c "apt-get update; apt-get install -yq git; git fetch; git checkout <commit-ish>; pip install pytest; py.test -v ce/tests"
构建镜像
bashgit clone https://github.com/pacificclimate/climate-explorer-backend cd climate-explorer-backend docker build -t climate-explorer-backend-image .
创建数据容器
建议创建独立的只读数据容器,供多个后端实例共享。可通过多个-v参数挂载不同位置的数据,确保文件路径与元数据库中定义一致。
bashdocker run --name ce_data -v /绝对路径/至/数据目录:/storage/data/:ro ubuntu 16.04
运行后端容器
bashdocker run -it -p <外部端口>:8000 \ -e "MDDB_DSN=postgresql://dbuser:dbpassword@host/databasename" \ --volumes-from ce_data \ --name climate-explorer-backend \ climate-explorer-backend-image
说明:
-v /绝对路径/至/数据目录:/storage/data/替换--volumes-from ce_data-e "MDDB_DSN=sqlite:////app/ce/tests/data/test.sqlite"创建版本化发布需执行以下步骤:
setup.py中更新__version__版本号NEWS.md中总结自上次发布后的变更bashgit add setup.py 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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务