如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
S3 Resource 是一个用于版本化 Amazon S3 存储桶中对象的工具,通过文件名模式匹配自动识别版本号。该工具主要作为 Concourse CI/CD 流水线的资源类型,用于在 CI/CD 流程中管理 S3 存储桶内带有版本标识的文件(如软件包、构建产物等),实现版本的自动识别与追踪。
源码及完整文档:https://github.com/concourse/s3-resource
v1.2.3、日期戳 20240501 等)自动识别版本号get)和上传(put)操作app-v1.0.0.tar.gz)、按日期归档的日志文件(logs-20240501.zip)等package-v2.1.0.zip)4.2.1 资源类型定义
在 Concourse 流水线中,需先定义 s3-resource 资源类型:
yamlresource_types: - name: s3-resource type: docker-image source: repository: concourse/s3-resource tag: latest # 或指定具体版本,如 v1.2.3
4.2.2 资源配置参数
定义资源时,需通过 source 字段配置 S3 连接信息及版本匹配规则,核心参数如下:
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| bucket | string | S3 存储桶名称 | 是 |
| access_key_id | string | AWS 访问密钥 ID(需具备 S3 读写权限) | 否 |
| secret_access_key | string | AWS 密钥密钥 | 否 |
| region | string | S3 存储桶所在 AWS 区域(默认:us-east-1) | 否 |
| regexp | string | 用于匹配文件名的正则表达式(需包含版本提取分组,如 package-(.*).zip) | 是 |
| version_pattern | string | 版本号格式验证正则(如语义化版本 \d+\.\d+\.\d+) | 否 |
| disable_ssl | bool | 是否禁用 SSL(默认:false) | 否 |
| endpoint | string | S3 兼容存储服务端点(非 AWS S3 时使用,如 MinIO) | 否 |
4.3.1 资源定义示例
yamlresources: - name: my-s3-assets type: s3-resource source: bucket: my-app-assets # S3 存储桶名称 access_key_id: ((aws-access-key)) # 通过 Concourse 变量存储密钥 secret_access_key: ((aws-secret-key)) region: ap-southeast-1 regexp: app-(v\d+\.\d+\.\d+)\.tar\.gz # 匹配文件名并提取版本(如 v1.2.3) version_pattern: v\d+\.\d+\.\d+ # 验证版本格式为 v+语义化版本
4.3.2 任务中使用资源
获取最新版本文件(get 操作):
yamljobs: - name: fetch-s3-asset plan: - get: my-s3-assets trigger: true # 当 S3 有新版本文件时自动触发任务 - task: use-asset config: platform: linux image_resource: type: docker-image source: {repository: alpine} inputs: - name: my-s3-assets # 输入资源,包含从 S3 获取的文件 run: path: sh args: - -c - | ls -l my-s3-assets/ # 列出获取的文件(含版本信息)
上传文件到 S3(put 操作):
yamljobs: - name: upload-to-s3 plan: - task: build-asset config: # 省略构建步骤,假设输出文件为 output/app-v1.3.0.tar.gz - put: my-s3-assets params: file: output/app-*.tar.gz # 上传匹配的文件到 S3
若未在 source 中配置 access_key_id 和 secret_access_key,可通过环境变量注入 AWS 认证信息(优先级低于资源配置):
| 环境变量名 | 描述 |
|---|---|
| AWS_ACCESS_KEY_ID | AWS 访问密钥 ID |
| AWS_SECRET_ACCESS_KEY | AWS 密钥密钥 |
| AWS_DEFAULT_REGION | 默认 AWS 区域(如未配置 region 参数) |
假设目标文件名为 app-v2.1.0-beta.tar.gz,配置 regexp: app-(v.*)\.tar\.gz,则提取的版本号为 v2.1.0-beta。若同时配置 version_pattern: v\d+\.\d+\.\d+,则仅匹配 v2.1.0 格式,v2.1.0-beta 会被过滤。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务