二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 最佳实践

    • 运维最佳实践

      • 一句话经验
      • 基于CNAME解析实践的域名优雅方案
      • 如何配置历史命令中有详细的时间戳
      • 建设一个运维外挂的最佳实践
      • 关于打包压缩几种格式(gzip,bzip2,xz)的试验对比
      • 利用谷歌浏览器自定义agent监听日志来调试服务
      • fdisk,parted使用非交互式方式对磁盘进行分区操作
      • GitLab部署的最佳实践
      • GitLab全局搜索之SourceGraph
      • vector实践-性能吊打logstash
      • 规范编码之利用pre-commit给项目添加提交前检查
      • CMDB平台建设指南
      • 用上赛博菩萨CNB,咱直接起飞
        • 构建
        • 起飞
          • 基础玩法
          • 进阶玩法
        • 最后
        • 补充
    • 成本优化实践

  • 迎刃而解

  • Nginx

  • Php

  • Zabbix

  • AWS

  • Prometheus

  • Grafana

  • Loki

  • CentOS

  • Supervisord

  • Systemd

  • Docker

  • Docker-Compose

  • Rancher

  • Ansible

  • OpenLdap

  • GitLab

  • GitHub

  • Etcd

  • Consul

  • RabbitMQ

  • Kafka

  • Mysql

  • MongoDB

  • OpenVPN

  • Kvm

  • VMware

  • 配置文件详解

  • Other

  • 运维观止
  • 最佳实践
  • 运维最佳实践
二丫讲梵
2025-03-27
目录

用上赛博菩萨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
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打造出一个属于自己的第二开发世界。

微信 支付宝
上次更新: 2025/03/27, 22:50:51
CMDB平台建设指南
腾讯云日志产品CLS使用以及成本控制的最佳实践

← CMDB平台建设指南 腾讯云日志产品CLS使用以及成本控制的最佳实践→

最近更新
01
记录二五年五一之短暂回归家庭
05-09
02
学习周刊-总第210期-2025年第19周
05-09
03
学习周刊-总第209期-2025年第18周
05-03
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式