本项目为基于云原生构建启动自定义云原生开发环境的插件,通过简单配置,即可实现对应功能。
效果如下图:

如果你想自定义选项参数列表,可参考如下说明。当前仓库已配置支持,通过两个配置文件来定义这个功能。
.cnb/web_trigger.yml参看当前仓库的: web_trigger.yml
branch:
- reg: ".*"
buttons:
- name: 启动自定义开发环境
description: 云原生开发环境一键初始化
event: web_trigger_start_custom_environment
inputs:
orphan:
name: 是否创建孤儿分支
description: 在已有主分支和内容的 Git 仓库中创建一个空内容的新分支(可选)
type: radio
required: false
default: no
options:
- name: 创建正常分支
value: no
description: 不创建孤儿分支
- name: 创建孤儿分支
value: yes
description: 创建孤儿分支
repository:
name: 绑定开发环境工作仓库
description: 输入您要启动的开发环境所对应的仓库库地址,如果不存在则会自动创建(可选)
type: input
required: false
default: zishuo/develop-workspace@develop
environment_url:
name: 自定义环境变量
description: 自定义一个密钥仓库文件,将敏感信息注入到环境变量,可在开发环境中直接使用。
type: input
required: false
default: https://cnb.cool/zishuo/system-env/-/blob/main/envs/init.yml
cluster_tag:
name: 云原生开发构建集群
description: 选择构建集群架构或GPU环境
type: select
required: true
default: cnb:arch:amd64
options:
- name: AMD64 架构(通用)- 1~64核
value: cnb:arch:amd64
description: 通用AMD64架构,CPU可配置1-64核
- name: ARM64/v8 架构 - 1~16核
value: cnb:arch:arm64:v8
description: ARM64/v8架构,CPU可配置1-16核
- name: AMD64 + GPU(标准)- 16核固定,48GB显存
value: cnb:arch:amd64:gpu
description: AMD64架构+GPU,48GB显存共享,CPU固定16核
- name: AMD64 + GPU H20 - 32核固定,96GB显存
value: cnb:arch:amd64:gpu:H20
description: AMD64架构+GPU H20,96GB显存共享,CPU固定32核
- name: AMD64 + GPU L40 - 16核固定,48GB显存
value: cnb:arch:amd64:gpu:L40
description: AMD64架构+GPU L40,48GB显存共享,CPU固定16核
cpu_cores:
name: CPU 核心数
description: 选择所需的 CPU 核数(GPU集群将自动使用固定核数)
type: select
required: true
default: 4
options:
- name: 1 核(仅限非GPU集群)
value: 1
- name: 2 核(仅限非GPU集群)
value: 2
- name: 4 核(仅限非GPU集群)
value: 4
- name: 8 核(AMD64/ARM64默认)
value: 8
- name: 16 核(ARM64最大/GPU标准固定)
value: 16
- name: 32 核(仅限AMD64/GPU H20固定)
value: 32
- name: 64 核(仅限AMD64架构)
value: 64
image_select:
name: 开发环境镜像选择
description: 选择预定义的开发环境镜像
type: select
required: true
default: docker.cnb.cool/zishuo/default-dev-env
options:
- name: CNB 官方默认远程开发环境
value: cnbcool/default-dev-env
- name: 菜鸡御用 Go+Node+Python、AI(Claude/Codex) 开发环境
value: docker.cnb.cool/zishuo/default-dev-env
- name: 大佬御用 Go-1.24+Node-18 开发环境
value: docker.cnb.cool/znb/images/debian:all
- name: 大佬御用 Go-1.25+Node-22 开发环境
value: docker.cnb.cool/znb/images/debian:new
- name: CNB 官方提供 Python3 开发环境
value: docker.cnb.cool/examples/language/python-3
- name: CNB 官方提供 PHP-8.4 开发环境
value: docker.cnb.cool/examples/language/php-8.4
- name: CNB 官方提供 CUDA-12.4 开发环境(推荐GPU集群)
value: docker.cnb.cool/examples/language/cuda-12.4
- name: CNB 官方提供 dotnet-9.0 开发环境
value: docker.cnb.cool/examples/language/dotnet-9.0
- name: CNB 官方提供 Java-8 开发环境
value: docker.cnb.cool/examples/language/java-8
- name: CNB 官方提供 Go-1.24 开发环境
value: docker.cnb.cool/examples/language/golang-1.24
- name: CNB 官方提供 Rust-1.87 开发环境
value: docker.cnb.cool/examples/language/rust-1.87
- name: CNB 官方提供 Node-22 开发环境
value: docker.cnb.cool/examples/language/node-22
custom_image_url:
name: 自定义镜像地址
description: 输入自定义镜像地址,优先级高于下拉选择镜像(可选)
type: input
required: false
placeholder: 例如:ubuntu:20.04 或 pytorch/pytorch:latest
repository_address:
name: 迁移外部Git仓库
description: 输入需要迁移的仓库地址,迁移后会将原仓库的所有内容迁移到选定的仓库中(可选)
type: input
required: false
其中的常用镜像列表,可根据自己的喜好自定义。
参看当前仓库的: ztools-environment.yml
内容如下:
"main":
web_trigger_start_custom_environment:
- services:
- docker
runner:
cpus: 1
imports: ${environment_url}
stages:
- name: 打印传入环境变量
script: |
if [ -z "$custom_image_url" ]; then image="$image_select"; else image="$custom_image_url"; fi;
echo -e "CPU核数: $cpu_cores \n构建集群: $cluster_tag \n工作仓库: $repository \n环境变量: $environment_url \n云开发镜像: $image"
- name: 使用自定义云原生开发环境
if: |
[ "$custom_image_url" != "" ]
image: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest
settings:
stype: "custom"
cpu: "${cpu_cores}"
image: "${custom_image_url}"
tag: "${cluster_tag}"
orphan: "${orphan}"
repository: "${repository}"
environment_url: "${environment_url}"
repository_address: "${repository_address}"
CNB_TOKEN: "${CNB_TOKEN_USER_PASSWORD}"
WECOM_HOOK_TOKEN: "${WECOM_HOOK_TOKEN}"
- name: 使用仓库内置云原生开发环境
if: |
[ "$custom_image_url" == "" ]
image: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest
settings:
stype: "custom"
cpu: "${cpu_cores}"
image: "${image_select}"
tag: "${cluster_tag}"
orphan: "${orphan}"
repository: "${repository}"
environment_url: "${environment_url}"
repository_address: "${repository_address}"
CNB_TOKEN: "${CNB_TOKEN_USER_PASSWORD}"
WECOM_HOOK_TOKEN: "${WECOM_HOOK_TOKEN}"
除了支持下拉选择镜像之外,还支持输入自定义镜像地址,优先级高于下拉选择镜像。
环境启动成功后:可点击右上角头像 --> 点击我的云原生开发 列表中查看对应的环境登陆地址等信息。
此工具编写过程中,用了如下优秀的库,在此感谢。