
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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务