
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
SirMordred Docker容器用于通过一系列配置文件部署Bitergia Analytics仪表板。使用前需确保已运行MariaDB服务器、ElasticSearch 2.2和Kibiter(Bitergia的Kibana分支,镜像为bitergia/kibiter:4.4.1),也可使用Kibana 4.4.1但会缺少部分改进功能。
部署过程中需修改的文件包括:
setup.cfg: SirMordred配置文件requirements.cfg: 组件版本配置文件projects.json: 项目及仓库信息JSON文件orgs_file.json: Sorting Hat格式的公司/组织及域名文件docker-compose.yml: 容器定义文件requirements.cfg指定Bitergia栈版本,便于升级适用于需要部署Bitergia Analytics仪表板的用户,用于分析软件项目的开发活动 metrics,支持多种代码托管平台(如GitHub)和版本控制系统(如Git)。
setup.cfg
SirMordred的主配置文件,包含多个配置段:
[general]段:项目基本配置
ini[general] short_name = Grimoire # 项目名称,需修改 update = true # 是否更新数据 debug = false # 是否开启调试模式 logs_dir = /home/bitergia/logs # 日志目录 kibana = "4" # Kibana版本,使用kibiter:5.1.1时改为5
性能优化配置:
inibulk_size = 1000 # ElasticSearch批量请求大小,1-10KB数据可增至5000 scroll_size = 1000 # 滚动查询时每次获取的项目数,范围1-9999
[projects]段:项目文件路径
ini[projects] projects_file = /home/bitergia/conf/projects.json # projects.json路径
ElasticSearch配置:
ini[es_collection] # 原始数据存储配置 url = http://elasticsearch:9200 # ElasticSearch地址 user = # 用户名(可选) password = # 密码(可选) [es_enrichment] # 丰富数据存储配置 url = http://elasticsearch:9200 user = password = autorefresh = false # 丰富后是否刷新所有项目的身份和项目信息 studies = true # 是否启用研究功能
Sorting Hat配置:身份管理
ini[sortinghat] host = mariadb # MariaDB地址 user = root # 数据库用户 password = # 数据库密码(可选) database = grimoire_sh # 数据库名称 load_orgs = true # 是否加载组织信息 orgs_file = [/home/bitergia/conf/orgs_file.json] # orgs_file.json路径 matching = [email-name, github] # 身份匹配策略 autoprofile = [customer, git, github] # 自动配置文件来源 sleep_for = 86400 # 刷新间隔(秒) unaffiliated_group = Unknown # 未关联用户组名称
身份导入/导出配置(可选):
iniidentities_file = [sh_identities.json] # 身份文件路径 identities_export_url = "https://github.com/<owner>/<repo>/blob/master/sh_identities.gz" # 导出地址 github_api_token = "42207XXXXXXXX" # GitHub写权限token
[panels]段:Kibiter配置
ini[panels] kibiter_time_from="now-90d" # 默认时间范围 kibiter_default_index="git" # 默认索引
[phases]段:启用/禁用处理阶段
ini[phases] collection = true # 数据收集 identities = true # 身份管理 enrichment = true # 数据丰富 panels = true # 仪表板构建
数据源配置:每个数据源需指定原始和丰富索引,部分需额外参数
ini[git] raw_index = git_grimoire_161116 # 原始数据索引 enriched_index = git_grimoire_161116_enriched_161209b # 丰富数据索引 [github] raw_index = github_grimoire_161116 enriched_index = github_grimoire_161116_enriched_161123a backend-token = [your github token] # GitHub访问token
requirements.cfg
指定Bitergia栈版本,格式如下:
bash#!/bin/bash RELEASE='elasticgirl.12' # 版本名称,从https://github.com/Bitergia/mordred/blob/master/docker/unified_releases获取
注意:若使用版本≤catwoman,需使用镜像
bitergia/mordred:catwoman而非latest。
projects.json
定义项目及关联数据源,示例:
json{ "GrimoireLab": { "github": [ "https://github.com/grimoirelab/arthur", "https://github.com/grimoirelab/GrimoireELK" ], "git": [ "https://github.com/grimoirelab/arthur", "https://github.com/grimoirelab/GrimoireELK.git" ] } }
orgs_file.json
Sorting Hat格式的组织和域名文件,可从https://github.com/Bitergia/mordred/blob/master/docker/example_conf/orgs_file.json%E4%B8%8B%E8%BD%BD%E3%80%82
docker-compose.yml示例:
yamlmordred: image: bitergia/mordred:latest volumes: - /home/luis/demo/conf/:/home/bitergia/conf # 配置文件目录映射 - /tmp/:/home/bitergia/logs # 日志目录映射 links: - mariadb - elasticsearch mariadb: restart: "always" image: mariadb:10.0 expose: - "3306" ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD= # 根密码(留空允许空密码) - MYSQL_ALLOW_EMPTY_PASSWORD=yes elasticsearch: restart: "always" image: elasticsearch:2.2 command: elasticsearch -Des.network.bind_host=0.0.0.0 -Dhttp.max_content_length=2000mb ports: - "9200:9200" kibana: image: bitergia/kibiter:4.4.1 environment: - PROJECT_NAME=mytest - NODE_OPTIONS=--max-old-space-size=200 links: - elasticsearch ports: - "8081:5601" # 编辑端口 kibana-ro: image: bitergia/kibiter:4.4.1-public environment: - PROJECT_NAME=mytest - NODE_OPTIONS=--max-old-space-size=200 links: - elasticsearch ports: - "8091:5601" # 只读端口
bashdocker-compose up -d
logs_dir配置):bashtail -n4 /tmp/mordred.log # 成功日志示例: # 2016-12-16 07:22:47,449 - mordred - INFO - [github] enrichment finished in 00:00:16 # 2016-12-16 07:22:48,289 - mordred - INFO - [git] enrichment finished in 00:00:17 # 2016-12-16 07:22:52,134 - mordred - INFO - Adding dashboard menu definition # 2016-12-16 07:22:52,357 - mordred - INFO - Adding dashboard menu definition
bashdocker-compose stop
bashdocker rm mordred_container # 替换为实际容器名
更新requirements.cfg中的RELEASE变量(从https://github.com/Bitergia/mordred/blob/master/docker/unified_releases%E8%8E%B7%E5%8F%96%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%EF%BC%89%E3%80%82
重新部署:
bashdocker-compose up -d
数据过滤
可通过过滤器从原始索引收集待丰富数据,示例projects.json配置:
json{ "RDO": { "askbot": [ "https://ask.openstack.org --filter-raw=data.tags:rdo" ] } }
对应setup.cfg配置:
ini[askbot] raw_index = askbot_openstack_170524 # 原始索引 enriched_index = askbot_openstack_170524_enriched_170529 # 丰富索引 es_collection_url = http://raw.elasticsearch:9200 # 原始数据ElasticSearch地址
命令行参数
bin/mordred -c setup.cfg -p collection enrichmentbin/mordred -t config_template.cfgbin/mordred -h命令行帮助信息:
usage: mordred [-h] [-c CONFIG_FILE] [-t CONFIG_TEMPLATE_FILE] [-p [PHASES [PHASES ...]]] Mordred, the friendly friend of GrimoireELK optional arguments: -h, --help 显示帮助信息 -c CONFIG_FILE, --config CONFIG_FILE 指定配置文件 -t CONFIG_TEMPLATE_FILE, --template CONFIG_TEMPLATE_FILE 创建配置模板文件 -p [PHASES [PHASES ...]], --phases [PHASES [PHASES ...]] 指定要执行的阶段(update设为false)
注意:上述高级功能未包含在基础演示中。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务