
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该Docker镜像用于通过virtme构建虚拟环境,以验证https://github.com/multipath-tcp/mptcp_net-next%E4%BB%93%E5%BA%93%EF%BC%88MPTCP%E4%B8%8A%E6%B8%B8%E5%86%85%E6%A0%B8%EF%BC%89%E3%80%82%E5%85%B6%E8%AE%BE%E8%AE%A1%E7%9B%AE%E6%A0%87%E6%98%AF%E6%8F%90%E4%BE%9B%E8%87%AA%E5%8A%A8%E6%9E%84%E5%BB%BA%E7%9A%84Docker%E9%95%9C%E5%83%8F%EF%BC%8C%E4%BE%9B%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E5%92%8CCI%EF%BC%88%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%EF%BC%89%E7%8E%AF%E5%A2%83%E4%BD%BF%E7%94%A8%E3%80%82
启动Docker镜像时,需指定以下模式之一:
manual-normal:编译无调试配置的内核,并提供shell提示符manual-debug:编译带调试配置的内核,并提供shell提示符auto-normal:在无调试配置的内核中运行所有自动测试auto-debug:在带调试配置的内核中运行所有自动测试auto-all:同时使用无调试和调试配置运行自动测试make:运行make命令(可带可选参数)make.cross:运行Intel的make.cross命令(可带可选参数)cmd:运行指定命令src: source指定的脚本文件help:显示所有可用命令所有manual-*和auto-*选项接受内核源代码中scripts/config脚本的可选参数,例如-e DEBUG_LOCKDEP。
适用于需要验证MPTCP上游内核代码的开发人员,以及CI流程中对内核进行自动化测试的场景。支持手动交互模式(用于开发调试)和自动测试模式(用于验证流程)。
无需克隆本仓库,可快速获取即用环境:
bashcd <内核源代码目录> docker pull mptcp/mptcp-upstream-virtme-docker:latest docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \ mptcp/mptcp-upstream-virtme-docker:latest \ <上述入口点选项>
说明:该Docker镜像需要
--privileged权限以支持QEmu的KVM加速。
克隆本仓库后使用:
bashcd <内核源代码目录> /PATH/TO/THIS/REPO/run-tests-dev.sh <上述入口点选项>
该命令会构建并启动Docker镜像。
可在内核源代码根目录创建以下3个文件:
.virtme-exec-pre:在测试套件运行前执行.virtme-exec-run:替代测试套件执行.virtme-exec-post:在测试套件运行后执行这些脚本会被source执行,并可使用virtme脚本中的函数。
非阻塞模式
设置INPUT_NO_BLOCK=1环境变量可在上述文件存在时不阻塞流程,适用于git bisect场景。
Packetdrill相关
INPUT_PACKETDRILL_NO_SYNC=1:不同步Packetdrill与上游,适用于挂载本地Packetdrill仓库INPUT_PACKETDRILL_NO_MORE_TOLERANCE=1:不增加Packetdrill的容错性直接使用Docker命令示例:
bashdocker run \ -e INPUT_PACKETDRILL_NO_SYNC=1 \ -e INPUT_PACKETDRILL_NO_MORE_TOLERANCE=1 \ -v /PATH/TO/packetdrill:/opt/packetdrill:rw \ -v "${PWD}:${PWD}:rw" -w "${PWD}" \ --privileged --rm -it \ mptcp/mptcp-upstream-virtme-docker:latest \ manual cd /opt/packetdrill/gtests/net/ ./packetdrill/run_all.py -lv mptcp/dss # 或其他子目录 # 或 cd /opt/packetdrill/gtests/net/mptcp/dss/ # 或其他子目录 ../../packetdrill/packetdrill -v dss_fin_server.pkt # 或其他测试
使用run.sh脚本示例*:
通过设置VIRTME_PACKETDRILL_PATH实现挂载并配置环境变量:
bashVIRTME_PACKETDRILL_PATH=/PATH/TO/packetdrill \ /PATH/TO/THIS/REPO/run-tests-dev.sh <上述入口点选项>
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务