
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
、加载到关系数据库(供分析师进行深度查询)以及推送到键值存储(Elasticsearch),为主要网站(obudget.org)提供数据支持。
实现这一过程的框架是datapackage-pipelines,该框架允许编写简单的“管道”,每个管道由一组预定义处理步骤组成。这些管道无需编码,而是通过一组YAML文件定义。大多数管道使用通用构建块,部分使用自定义处理器(主要是针对特殊数据源的自定义爬虫)。
要查看各管道的当前处理状态,可访问仪表盘。
datapackage-pipelines框架的应用示例,供开发者参考所有管道定义位于datapackage_pipelines_budgetkey_data_pipeline/pipelines目录下,主要结构如下:
budget/
national/
original:获取国家预算的管道processed:处理和分析国家预算的管道changes/
original:获取国家预算变更信息的管道processed:处理和分析预算变更(检测交易等)的管道explanations:获取和提取国家预算变更说明文档文本的管道entities/
associations:获取非***组织(NGO)信息的管道companies:获取公司信息的管道ottoman:获取奥斯曼协会信息的管道special:获取其他实体信息的管道procurement/
spending:获取和处理***支出报告的管道tenders:获取***招标流程数据的管道supports/:获取***支持及其相关流程数据的管道注:如需了解不同类型***支出的区别,可阅读这篇博客文章。
datapackage-pipelines框架https://github.com/frictionlessdata/datapackage-pipelinesdatapackage-pipelines-budgetkey包系统依赖安装
bashsudo apt-get install build-essential python3-dev libxml2-dev libxslt1-dev libleveldb-dev
Python 3.6+安装
推荐使用https://github.com/pyenv/pyenv%E7%AE%A1%E7%90%86Python%E7%89%88%E6%9C%AC%E3%80%82
Ubuntu系统:
bashsudo apt-get install git python-pip make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev sudo pip install virtualenvwrapper git clone https://github.com/yyuu/pyenv.git ~/.pyenv git clone https://github.com/yyuu/pyenv-virtualenvwrapper.git ~/.pyenv/plugins/pyenv-virtualenvwrapper echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc echo 'pyenv virtualenvwrapper' >> ~/.bashrc exec $SHELL
OSX系统:
bashbrew install pyenv echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
安装完成后设置Python版本:
bashpyenv install 3.6.1 pyenv global 3.6.1
bashpython --version # 确保输出Python 3.6.0+ sudo mkdir -p /var/datapackages && sudo chown $USER /var/datapackages/ make install budgetkey-dpp # 验证安装,应显示可用管道列表
bashbudgetkey-dpp run ./entities/companies/registrar/registry
运行后将创建以下文件:
/var/datapackages:数据以datapackage格式保存datapackage_pipelines_budgetkey/.data.db:数据存储到数据库(可通过DPP_DB_ENGINE环境变量设置自定义数据库,格式为SQLAlchemy连接URL)datapackage_pipelines_budgetkey/pipelines/.dpp.db:管道元数据和运行状态单元测试
bashmake test
运行特定测试/修改测试参数
bash# 运行特定测试文件 tox tests/tenders/test_fixtures.py # 直接使用py.test(需先安装pytest) pip install pytest py.test tests/tenders/test_fixtures.py -svk test_tenders_fixtures_publishers
Docker Compose可用于运行包含所有必要服务的完整环境,类似生产环境。
安装
docker-compose build pipelinesbashdocker-compose up -d redis db pipelines
可用服务端点
http://localhost:5000/(默认不运行工作节点)postgresql://postgres:123456@localhost:15432/postgres在容器内运行命令
bashdocker-compose exec pipelines sh -c "budgetkey-dpp"
启动Elasticsearch和Kibana
bashdocker-compose up -d elasticsearch kibana
从本地连接容器服务
bashsource .env.example dpp
以下步骤将datapackage加载到Elasticsearch,供Kibana探索数据(注意:会删除本地Docker Compose卷,确保无重要数据):
bash# 启动基础服务 docker-compose down -v && docker-compose pull elasticsearch db && docker-compose up -d elasticsearch db # 设置环境变量 export DPP_DB_ENGINE="postgresql://postgres:123456@localhost:15432/postgres" export DPP_ELASTICSEARCH="localhost:19200" # 加载数据(默认加载每个管道前100行,可修改ES_LIMIT_ROWS或移除) for doctype in `budgetkey-dpp | grep .budgetkey/elasticsearch/index_ | cut -d"_" -f2 - | cut -d" " -f1 -`; do echo " > 加载 ${doctype}" ES_LOAD_FROM_URL=1 ES_LIMIT_ROWS=100 budgetkey-dpp run ./budgetkey/elasticsearch/index_$doctype done
启动Kibana探索数据:
bashdocker-compose up -d kibana
Kibana可通过http://localhost:15601/访问(启动可能需要几分钟),索引名称为budgetkey。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务