
如果你使用 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插件,用于Nomad作业部署。本工具为实验性项目,请勿用于重要业务场景。
插件依赖Lambda函数(见./homeless/lambda_handler.py)代理Nomad API调用。
支持在触发部署前修改作业规范:可将部分作业配置存于Git仓库,其余信息从DynamoDB获取。
若使用部分作业规范,插件会从DynamoDB表中获取增量配置。
DynamoDB表需以job(作业ID)和environment(目标环境)为主键,增量配置存于overrides属性。
增量配置支持特殊格式控制合并行为:
Attribute.*:对列表中所有元素应用补丁@cond(attr [=|!=] val):仅对满足条件的元素应用补丁(仅支持=和!=运算符)示例:
原JSON对象:
json{ "Name": "user", "Projects": [ { "Name": "drone-nomad", "Language": "python" }, { "Name": "caddy", "Language": "go" } ] }
为所有项目添加Owner属性:
json{ "Projects.*": { "Owner": "user" } }
仅为名称为drone-nomad的项目添加Owner属性:
json{ "Projects.*": { "@cond(Name = drone-nomad)": { "Owner": "user" } } } ## 版本跟踪 插件自动传播活跃版本信息: 1. 更新每个任务的`REVISION`元变量 2. 将最新版本写入Consul KV,路径前缀为`_config/services/<job_name>/<group_name>/<task_name>/active_tag` ## 插件配置 以下环境变量可用于配置插件: | 名称 | 描述 | 默认值 | 是否必填 | |:-----|:-------------|:--------------:|:-------:| | ACCOUNT_NUMBER | 使用的AWS账户ID | EC2机器所属账户 | 否 | | DRONE_BUILD_NUMBER | 构建编号 | None | 是 | | DRONE_COMMIT | 提交哈希 | None | 是 | | DRONE_DEPLOY_TO | 目标环境名称 | None | 是 | | NOMAD_BIN_PATH | Nomad二进制文件完整路径 | `assets/nomad` | 否 | | PLUGIN_CI_ROLE | 需在ACCOUNT_NUMBER中扮演的IAM角色名(非ARN) | ci | 否 | | PLUGIN_DYNAMODB_TABLE | 要使用的DynamoDB表名 | None | 是 | | PLUGIN_LAMBDA_FUNC | 要使用的Lambda函数名 | None | 是 | | PLUGIN_REGION | AWS区域名称 | EC2机器所属区域 | 否 | | container_tag | 待部署的容器标签 | DRONE_COMMIT前8个字符 | 否 | | dc | Nomad区域和数据中心,格式为`region:datacenter` | 作业规范中指定的值 | 否 | | only_plan | 设置为`true`时仅打印计划并退出 | `false` | 否 | | target_job | 待部署的作业文件名 | `jobspec.nomad` | 否 | | target_task | 待修改的任务名称 | None | 是 | ## 示例 ### Pipeline配置 ```yaml pipeline: deploy: image: kayako/drone-nomad ci_role: ci-server dynamodb_table: drone_nomad_overrides lambda_func: DeployFunc region: us-east-1 secrets: [ account_number_production, account_number_staging, account_number_develop ]
使用Drone CLI
shdrone deploy --param 'container_tag=abcd' \ --param 'dc=nvirginia:pod_1' \ --param 'only_plan=true' \ --param 'target_job=project' \ --param 'target_task=task_name' \ project 1 staging
使用GitHub部署API
shcurl -s -X POST -H 'Accept: application/vnd.github.ant-man-preview+json' \ -d '{ "ref": "staging", "environment": "staging", "description": "通过GitHub API部署到 staging", "payload": "{\"container_tag\":\"abcd\",\"dc\":\"nvirginia:pod_1\",\"only_plan\":true,\"target_job\":\"project\",\"target_task\":\"task_name\"}" }' https://api.github.com/repos/octocat/octocat/deployments
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务