用上赛博菩萨CNB,咱直接起飞
今天来分享一个近期带给我许多惊喜体验的网站,CNB (opens new window),第一次听说这个网站,是半年前经由运维小弟 (opens new window)介绍,注册了账号,当时没有过多体验,放到了一边。年后凭借 Deepseek 的东风,CNB 群里有不少折腾大模型的讨论,我开始重新关注起这个网站。
什么是 CNB,CNB 是 Cloud Native Build
的简称,同时也是超牛逼的简称。首先它是一个代码托管仓库
,你可以类比 GitHub,以及 Gitee,其次,他还支持流水线构建
的能力,可以类比 Github Action,最后,他也支持 WebIDE
的能力,并且原生支持 vscode
基于 remote-ssh
连接使用。
接下来我用两个自己最近实践的案例场景,来介绍下他的用法。
# 构建
在整个 CNB 系统中,构建以及云开发都是基于云原生环境构筑的,因此镜像成为这些操作的底层环境支撑,默认情况下,官方会以 cnbcool/default-dev-env:latest
作为基础镜像,但这个镜像只做了基础的封装,我们可以自己封装一些镜像,来作为开发与构建的基础环境。
仓库地址: https://cnb.cool/znb/images (opens new window)
我创建了一个专门存放封装的镜像的仓库,借助 cnb 的构建能力,自动构建镜像,并将镜像上传到 cnb 的制品库。
现已集成如下基础环境:
- node16 (opens new window)
- node18 (opens new window)
- node20 (opens new window)
- go-1.22 (opens new window)
- centos:7.9 (opens new window)
- debian (opens new window)
更多构建方面的语法,详见:官方文档 (opens new window),你可以根据自己的需求定制自己的镜像。
# 起飞
# 基础玩法
CNB 支持自定义云开发拉起的镜像,又支持 remote-ssh,继承了在线开发,端口映射的优点,因此,我们可以基于自己封装的镜像,来做一个自己趁手的起飞环境。
仓库地址: https://cnb.cool/znb/qifei (opens new window)
我创建了 qifei 这个仓库,里边通过如下信息,内置集成了我封装后的 debian (opens new window) 环境:
$ cat .ide/Dockerfile
FROM docker.cnb.cool/znb/images/debian
2
3
这个环境,你可以轻松拥有。只需 fork 我这个仓库,然后点击起飞即可:
CNB 默认的临时环境已经集成了 docker 命令,而且支持 dind 的玩法,于是,起飞之后,你可以直接像我这么玩:
$ wget https://raw.githubusercontent.com/opsre/go-ldap-admin/refs/heads/main/docs/docker-compose/docker-compose.yaml
$ docker compose up -d
2
因为 CNB 针对许多开发相关的地址都做过加速
,因此从 github 下载文件也是非常快的。
然后点击到 PORTS
将内部端口映射出来:
然后就可以在浏览器,或者本地调用映射出来的地址了。
这个起飞实在是太爽啦,当我第一次把这个流程跑通的时候,忍不住感叹了一句,CNB,ZNB。用上 CNB ,从此幸福一生。
# 进阶玩法
在 cnb 官方文档 (opens new window)介绍中,云原生开发环境,除了可以在 .ide/Dockerfile
中定义环境之外,还支持在 .cnb.yml
中进行定义,而且支持更加丰富的能力,比如支持自定义启动前后的命令。
比如使用如下代码定义:
$ cat .cnb.yml
$:
vscode:
- docker:
image: docker.cnb.cool/znb/images/debian
services:
- vscode
- docker
stages:
- name: 自定义启动后动作
script: |
cd /opt
wget https://raw.githubusercontent.com/opsre/go-ldap-admin/refs/heads/main/docs/docker-compose/docker-compose.yaml
docker compose up -d
2
3
4
5
6
7
8
9
10
11
12
13
14
15
这样子,当你点击起飞之后,就会自动将环境拉起来了。
通过拉起环境过程的构建日志,可以看到我们定义的拉环境命令在执行了:
# 最后
CNB 目前在我个人内心,堪比 赛博菩萨
,除了解决个人博客的流水线自动化之外,还满足了我随时拉起一个空白环境,做一些小实验,做一些临时测试的需求,更为重要的是,这个临时环境,还拥有天然的加速,执行 apt-get
安装,或者其他语言的依赖拉起,都是极其丝滑的体验。
# 补充
如上提到的构建以及云开发环境,在CNB 中,以核时作为计费单位,目前官方仍在公测中,提供免费+限免额度:
官方也会在一些直播活动时,赠送核时,可保持关注。基于 CNB打造出一个属于自己的第二开发世界。

