logo
3
0
WeChat Login
新增云原生开发环境配置及工具支持

ZTools

🎭 基于云原生构建启动自定义云原生开发环境

🔔 可直接 fork 本仓库,即刻拥有基于云原生构建启动自定义云原生开发环境的功能!

ℹ️ 项目简介

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

效果如下图:

🗣️ 用法介绍

如果你想自定义选项参数列表,可参考如下说明。当前仓库已配置支持,通过两个配置文件来定义这个功能。

  1. 定义 .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

其中的常用镜像列表,可根据自己的喜好自定义。

  1. 定义按钮触发对应任务

参看当前仓库的: 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}"

除了支持下拉选择镜像之外,还支持输入自定义镜像地址,优先级高于下拉选择镜像。

  1. 在 .cnb.yml 中引用如上流水线文件即可实现完美且优雅的自定义云原生开发环境。

环境启动成功后:可点击右上角头像 --> 点击我的云原生开发 列表中查看对应的环境登陆地址等信息。

🥰 感谢

此工具编写过程中,用了如下优秀的库,在此感谢。