本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
S3 Resource 是一个用于版本化 Amazon S3 存储桶中对象的工具,通过文件名模式匹配自动识别版本号。该工具主要作为 Concourse CI/CD 流水线的资源类型,用于在 CI/CD 流程中管理 S3 存储桶内带有版本标识的文件(如软件包、构建产物等),实现版本的自动识别与追踪。
源码及完整文档:[***]
v1.2.3、日期戳 20240501 等)自动识别版本号get)和上传(put)操作app-v1.0.0.tar.gz)、按日期归档的日志文件(logs-20240501.zip)等package-v2.1.0.zip)在 Concourse 流水线中,需先定义 s3-resource 资源类型:
resource_types: - name: s3-resource type: docker-image source: repository: concourse/s3-resource tag: latest # 或指定具体版本,如 v1.2.3
定义资源时,需通过 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) | 否 |
resources: - 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+语义化版本
获取最新版本文件(get 操作):
jobs: - 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 操作):
jobs: - 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 会被过滤。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429