
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Drone Tree Config是一个Drone扩展,用于支持包含多个.drone.yml文件的单体仓库。该扩展会检查每个更改的文件,在文件所在目录或任何父目录中查找.drone.yml配置文件。Drone将使用第一个匹配的.drone.yml,或可选地将所有匹配的配置合并为多机构建。官方Docker镜像地址:https://hub.docker.com/r/bitsbeats/drone-tree-config%E3%80%82
.drone.yml配置文件当前支持以下代码托管平台:
适用于需要在单体仓库中按目录维护多个CI/CD配置的场景,尤其适合大型项目或多模块项目,可实现基于代码变更的定向构建,提高CI/CD效率。
通用配置
PLUGIN_CONCAT:是否将所有找到的配置合并为多机构建,默认为falsePLUGIN_FALLBACK:当未检测到更改时是否重建所有.drone.yml,默认为falsePLUGIN_MAXDEPTH:在回退模式下搜索.drone.yml的最大深度,默认为2(仍能找到/a/b/.drone.yml)PLUGIN_DEBUG:设为true启用调试消息,默认为falsePLUGIN_ADDRESS:插件Web服务器监听地址,默认为:3000PLUGIN_SECRET:与Drone共享的密钥,可使用openssl rand -hex 16生成PLUGIN_ALLOW_LIST_FILE:(可选)正则模式文件路径,用于匹配仓库slug,默认为空(匹配所有仓库)PLUGIN_CACHE_TTL:(可选)缓存条目的生存时间,大于0s时启用内存缓存PLUGIN_CONSIDER_FILE:(可选)指定考虑文件名称,仅考虑该文件中列出的.drone.yml文件后端特定配置
SERVER:自定义SCM服务器(Gitlab/Bitbucket也使用此配置)GitHub
GITHUB_TOKEN:GitHub个人访问令牌,仅需repo权限,详见https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-lineGitLab
GITLAB_TOKEN:GitLab个人访问令牌,仅需read_repository权限,详见此处Bitbucket
BITBUCKET_AUTH_SERVER:自定义认证服务器(为空时使用SERVER)BITBUCKET_CLIENT:Bitbucket访问凭证BITBUCKET_SECRET:Bitbucket访问凭证若未设置
PLUGIN_CONCAT,将使用第一个找到的.drone.yml
yamlversion: '2' services: drone-server: image: drone/drone ports: - 8000:80 volumes: - /var/lib/drone:/data - /var/run/docker.sock:/var/run/docker.sock links: - drone-tree-config restart: always environment: - DRONE_OPEN=true - DRONE_SERVER_PROTO=https - DRONE_SERVER_HOST= - DRONE_GITHUB=true - DRONE_GITHUB_SERVER=https://github.com - DRONE_GITHUB_CLIENT_ID= - DRONE_GITHUB_CLIENT_SECRET= - DRONE_GIT_ALWAYS_AUTH=true - DRONE_SECRET= - DRONE_RUNNER_CAPACITY=2 - DRONE_YAML_ENDPOINT=http://drone-tree-config:3000 - DRONE_YAML_SECRET=<SECRET> drone-tree-config: image: bitsbeats/drone-tree-config environment: - PLUGIN_DEBUG=true - PLUGIN_CONCAT=true - PLUGIN_FALLBACK=true - PLUGIN_SECRET=<SECRET> - GITHUB_TOKEN=<GITHUB_TOKEN> restart: always
请根据需要修改 Secrets(``)、<SECRET> 和 <GITHUB_TOKEN>。<SECRET> 用于Drone和drone-tree-config之间的通信。
默认情况下,插件匹配所有仓库slug。若需仅为特定仓库启用插件,可通过指定PLUGIN_ALLOW_LIST_FILE开启正则匹配。
#开头的行视为注释(将被忽略)更新后的docker-compose配置:
yamldrone-tree-config: image: bitsbeats/drone-tree-config environment: - PLUGIN_DEBUG=true - PLUGIN_CONCAT=true - PLUGIN_FALLBACK=true - PLUGIN_SECRET=<SECRET> - GITHUB_TOKEN=<GITHUB_TOKEN> - PLUGIN_ALLOW_LIST_FILE=/drone-tree-config-matchfile restart: always volumes: - /var/lib/drone/drone-tree-config-matchfile:/drone-tree-config-matchfile
示例文件:drone-tree-config-matchfile
text^bitbeats/.*$ ^myorg/myrepo$
bitbeats组织下的所有仓库myorg/myrepo仓库若定义了PLUGIN_CONSIDER_FILE,drone-tree-config将先读取目标文件内容,仅考虑其中指定的.drone.yml文件。
根据仓库的大小和复杂度,使用"考虑文件"可显著减少对提供商(github、bitbucket等)的API调用次数,降低速率限制风险并减少处理时间。
配置示例:
yaml- PLUGIN_CONSIDER_FILE=.drone-consider
本地Git仓库结构示例:
shell$ tree -a my-repo-clone/ my-repo-clone/ ├── .drone-consider ├── foo │ └── .drone.yml ├── bar │ └── .drone.yml └── baz
.drone-***文件内容:
shell$ cat my-repo-clone/.drone-consider foo/.drone.yml bar/.drone.yml
"考虑文件"的缺点是需要保持同步。建议在每个.drone.yml中添加一个步骤来验证"考虑文件"与仓库实际内容同步,例如比较find ./ -name .drone.yml的输出与"考虑文件"内容。
若定义了PLUGIN_CACHE_TTL,drone-tree-config将利用内存缓存匹配入站请求与缓存中的请求。找到匹配时返回缓存响应,缓存条目在达到TTL后过期并被移除。
示例(30分钟后过期):
yaml- PLUGIN_CACHE_TTL=30m
根据仓库的大小和复杂度,使用缓存可显著减少对提供商的API调用次数,降低速率限制风险并减少处理时间。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务