惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
月光博客
月光博客
IT之家
IT之家
B
Blog RSS Feed
T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
博客园_首页
B
Blog
V
V2EX
腾讯CDC
Vercel News
Vercel News
量子位
Microsoft Security Blog
Microsoft Security Blog

二丫讲梵

学习周刊-总第258期-2026年第15周 学习周刊-总第257期-2026年第14周 学习周刊-总第256期-2026年第13周 学习周刊-总第255期-2026年第12周 学习周刊-总第254期-2026年第11周 学习周刊-总第253期-2026年第10周 临时插播一条羊毛,免费领取450元大模型API代金券 学习周刊-总第252期-2026年第09周 学习周刊-总第251期-2026年第08周 学习周刊-总第250期-2026年第07周 学习周刊-总第249期-2026年第06周 诚邀评论,聊聊你所知欲知的我 学习周刊-总第248期-2026年第05周 我的QQ动态之2015年 我的QQ动态之2014年 我的QQ动态之2013年 我的QQ动态之2012年 我的QQ动态-2010-2011年 我的QQ动态-创栏小叙 学习周刊-总第247期-2026年第04周 Nexus社区版权益阉割--一文告诉你有哪些版本可以选择 学习周刊-总第246期-2026年第03周 学习周刊-总第245期-2026年第02周 学习周刊-总第244期-2026年第01周 学习周刊-总第243期-2025年第52周 学习周刊-总第242期-2025年第51周 开源项目ZenOps:带你领略禅意运维 学习周刊-总第241期-2025年第50周 用京东金融,享负债人生 学习周刊-总第240期-2025年第49周
用上赛博菩萨CNB,咱直接起飞
二丫讲梵 · 2025-03-28 · via 二丫讲梵

今天来分享一个近期带给我许多惊喜体验的网站,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 的制品库。

现已集成如下基础环境:

更多构建方面的语法,详见:官方文档 (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

1
2
3

这个环境,你可以轻松拥有。只需 fork 我这个仓库,然后点击起飞即可:

My_Photor_1743079249463.webp

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

1
2

因为 CNB 针对许多开发相关的地址都做过加速,因此从 github 下载文件也是非常快的。

My_Photor_1743079764745.webp

然后点击到 PORTS 将内部端口映射出来:

My_Photor_1743079917242.webp

然后就可以在浏览器,或者本地调用映射出来的地址了。

这个起飞实在是太爽啦,当我第一次把这个流程跑通的时候,忍不住感叹了一句,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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

这样子,当你点击起飞之后,就会自动将环境拉起来了。

通过拉起环境过程的构建日志,可以看到我们定义的拉环境命令在执行了:

My_Photor_1743080684559.webp

# 最后

CNB 目前在我个人内心,堪比 赛博菩萨,除了解决个人博客的流水线自动化之外,还满足了我随时拉起一个空白环境,做一些小实验,做一些临时测试的需求,更为重要的是,这个临时环境,还拥有天然的加速,执行 apt-get 安装,或者其他语言的依赖拉起,都是极其丝滑的体验。

# 补充

如上提到的构建以及云开发环境,在CNB 中,以核时作为计费单位,目前官方仍在公测中,提供免费+限免额度:

My_Photor_1743081181105.webp

详见:官方文档 (opens new window)

官方也会在一些直播活动时,赠送核时,可保持关注。基于 CNB打造出一个属于自己的第二开发世界。