这是一个基于 CNB (云原生构建) 的多架构 Docker 镜像构建模板仓库。
本仓库提供了多架构(AMD64 和 ARM64)构建的模板配置,支持:
多架构构建主配置文件,实现了以下功能:
cnb:arch:amd64 标签的构建节点cnb:arch:arm64:v8 标签的构建节点两个架构的构建过程并行执行,互不阻塞。
每个架构的构建步骤:
cnb:resolve 内置任务)最终合并步骤:
cnb:await 内置任务):latest - 多平台 Manifest 列表(支持 linux/amd64 和 linux/arm64):latest-linux-amd64 - AMD64 特定镜像(构建后删除):latest-linux-arm64 - ARM64 特定镜像(构建后删除)AMD64 云原生开发环境配置,用于在 CNB 平台上进行远程开发。
配置内容:
docker.cnb.cool/yamingnetwork/ide:latestcnb:arch:amd64使用方法:
# 在你的 .cnb.yml 中 include 此文件
include:
- ./Debian-13-ide-amd64.yml
ARM64 云原生开发环境配置,用于在 CNB 平台上进行远程开发。
配置内容:
docker.cnb.cool/yamingnetwork/ide:latestcnb:arch:arm64:v8使用方法:
# 在你的 .cnb.yml 中 include 此文件
include:
- ./Debian-13-ide-aarch64.yml
将 amd64-aarch64-templates.yml 的内容复制到你的 .cnb.yml 文件中。
确保你的项目根目录有一个 Dockerfile,CNB 会自动构建多架构镜像。
在你的 .cnb.yml 文件中通过 include 引入模板:
include:
- https://cnb.cool/your-namespace/your-repo/-/blob/main/amd64-aarch64-templates.yml
main:
push:
# 你的其他构建流程...
或者在本地仓库中直接引用:
include:
- ./amd64-aarch64-templates.yml
如果你只需要远程开发环境,可以只引入对应的 IDE 配置:
include:
- ./Debian-13-ide-amd64.yml # 或 ./Debian-13-ide-aarch64.yml
include 支持三种方式引入配置:
合并规则:
通过 runner.tags 指定架构:
cnb:arch:amd64 - AMD64 架构cnb:arch:arm64:v8 - ARM64 架构通知某个任务完成,设置一个 key 用于后续等待。
- name: resolve
type: cnb:resolve
options:
key: build-amd64
等待指定 key 的任务完成后才继续执行。
- name: await the amd64
type: cnb:await
options:
key: build-amd64
删除制品库的标签。
- name: remove tag
type: artifact:remove-tag
options:
name: ${CNB_REPO_NAME}
tags:
- latest-linux-amd64
- latest-linux-arm64
type: docker
使用 cnbcool/manifest 插件创建多平台镜像 Manifest 列表。
- name: manifest
image: cnbcool/manifest
settings:
target: ${IMAGE_TAG}
template: ${IMAGE_TAG}-OS-ARCH
platforms:
- linux/amd64
- linux/arm64
本模板使用以下 CNB 默认环境变量:
CNB_DOCKER_REGISTRY - CNB Docker 制品库地址CNB_REPO_SLUG_LOWERCASE - 仓库标识(小写)CNB_REPO_NAME - 仓库名称CNB_TOKEN - CNB 访问令牌CNB_TOKEN_USER_NAME - CNB 用户名Dockerfile 存在于项目根目录-linux-amd64、-linux-arm64)会在构建完成后自动清理vscode 事件触发欢迎提交 Issue 和 Pull Request 来改进这些模板配置。