logo
0
0
WeChat Login
chore: 镜像缓存引用路径调整为带 cache 后缀

CNB 基础开发环境

最小化云原生开发环境基础镜像,其他项目通过 FROM 继承。

设计原则

基础镜像只包含所有项目都需要的、与语言/框架无关的内容:

  • code-server(WebIDE 核心)
  • 通用系统工具(git、curl、vim 等)
  • Shell 环境(zsh + oh-my-zsh + starship + lsd)
  • 视觉体验(Catppuccin 主题/图标 + 字体配置)
  • CNB 平台集成(.cnb.yml Schema + cnb-openapi-skills)
  • Git 增强(gitblame、git-graph、githistory)
  • AI 编程助手(coding-copilot)

项目级配置(格式化、lint、语言服务器、编辑器行为)通过 fork 项目模板仓库 实现。

文件结构

base-dev-env/ ├── .ide/ │ ├── Dockerfile ← 云原生基础镜像构建文件 │ └── settings.json ← Machine 维度 COPY 源(主题/字体/终端/CNB Schema) ├── .cnb.yml ← CNB 主配置(云原生开发 + 镜像构建流水线) ├── .cnb/ │ └── settings.yml ← 启动按钮配置 └── README.md ← 你正在看的文件

已安装内容

VSCode 插件(11 个)

类别插件用途
平台集成cnbcool.cnb-welcomeCNB 欢迎页
平台集成tencent-cloud.coding-copilotAI 编程助手
平台集成redhat.vscode-yamlYAML 格式化 + CNB Schema
Git 增强waderyan.gitblame行内 Git 修改者
Git 增强mhutchie.git-graphGit 分支图
Git 增强donjayamanne.githistory文件修改历史
开发工具cloudstudio.live-server本地开发服务器
开发工具ms-azuretools.vscode-containersDocker 容器管理
视觉体验Catppuccin.catppuccin-vscCatppuccin 颜色主题
视觉体验Catppuccin.catppuccin-vsc-iconsCatppuccin 文件图标
语言支持ms-ceintl.vscode-language-pack-zh-hans中文语言包

CNB OpenAPI Skills

cnb-openapi-skills 是 CNB 平台的 OpenAPI 技能包,安装到 ~/.codebuddy/skills/ 目录。

作用:为 AI 编程助手(CodeBuddy / Claude Code)提供完整的 CNB 平台 API 知识,使其能通过自然语言直接操作 CNB 平台,包括:

  • 仓库管理(创建、查询、列表)
  • Pull Request(创建、查看、合并)
  • Issue(创建、查询、状态管理)
  • 构建流水线(触发、查看状态、日志)
  • 制品库(推送、拉取镜像)
  • 分支与标签管理

使用方式:在云原生开发环境中,直接用自然语言向 AI 助手发出指令即可,例如:

  • "帮我查看这个仓库的 PR 列表"
  • "创建一个新分支 feature/xxx"
  • "查看最近一次构建的状态"
  • "帮我创建一个 Issue"

AI 助手会自动调用 CNB API 完成操作。需要配置 CNB_TOKEN 环境变量以获得 API 访问权限。

系统工具

基础工具

工具用途
ca-certificates提供SSL证书支持
tzdata时区数据
locales多语言支持(中文环境)

网络工具

工具用途
iputils-ping网络连通性测试工具
net-tools提供ifconfig等网络配置工具
dnsutils提供nslookup等DNS查询工具
telnet网络连接测试工具
netcat-openbsd网络工具,用于端口测试等

下载工具

工具用途
wget网络文件下载工具
curl网络请求工具

文件工具

工具用途
unzip文件解压工具
zip文件压缩工具
jqJSON处理工具
rsync文件同步工具
nano轻量级文本编辑器
vim文本编辑器

系统工具

工具用途
htop增强的系统监控工具
lsof查看打开的文件和网络连接
bash-completion命令自动补全

开发工具

工具用途
git版本控制系统
git-lfsGit大文件支持
openssh-serverSSH服务器,支持远程连接
build-essential基础编译工具
make构建系统工具
python3-pipPython包管理工具
opensslSSL工具
libssl-devSSL开发库
libltdl-dev库依赖工具
zsh增强的命令行环境

Shell 环境

  • zsh + oh-my-zsh + zsh-autosuggestions + zsh-syntax-highlighting
  • starship 提示符(Git 状态、语言版本等富信息)
  • lsd 增强版 ls(文件类型图标 + 颜色 + 树形视图)
  • UTF-8 中文字符集支持

别名配置

别名命令用途
clclear清屏
dpdocker ps查看运行中的容器
didocker images查看本地镜像
cdwcd /workspace快速切换到工作目录
dcdocker composeDocker Compose 快捷命令
docker-composedocker compose兼容旧命令
srcsource ~/.zshrc重新加载 zsh 配置
bashzsh替换 bash 为 zsh
hshistory查看命令历史
..cd ..上一级目录
...cd ../..上两级目录
openw"$BROWSER" "$CNB_VSCODE_WEB_URL"打开 WebIDE
openv"$BROWSER" "$CNB_VSCODE_REMOTE_SSH_SCHEMA"打开 VSCode 远程 SSH
open"$BROWSER" "http://localhost:$1"打开本地端口
openr"$BROWSER" "$(echo "${CNB_VSCODE_PROXY_URI//\{\{port\}\}/$1}")"打开 CNB 代理端口
lslsd增强版 ls
lllsd -l详细列表
lalsd -a显示隐藏文件
llalsd -la详细列表 + 隐藏文件
ltlsd --tree树形视图

历史记录配置

  • 历史记录条数:10,000,000
  • 历史记录格式:%Y-%m-%d %T(年-月-日 时:分:秒)
  • 忽略的命令:ls, cd, pwd, exit
  • 历史记录文件:/root/.cnb/system/zsh_history

主题与字体

  • 颜色主题:Catppuccin Mocha
  • 图标主题:Catppuccin Mocha(catppuccin-mocha)
  • 编辑器字体:Maple Mono NF → JetBrains Mono → Fira Code → Consolas → monospace
  • 终端字体:Maple Mono NF → JetBrains Mono → Fira Code → Consolas → monospace

字体渲染在浏览器端,需用户本地安装对应字体。

配置继承机制

VSCode 配置(Machine 维度)

基础镜像将视觉体验配置写入 Machine 维度,子项目通过 .vscode/settings.json 覆盖或追加:

仓库维度 (.vscode/settings.json) ← 子项目增量配置 ↓ 覆盖 机器维度 (Machine/settings.json) ← 基础镜像:主题/字体/终端/CNB Schema

CNB 构建上下文

.cnb.ymlbuild.by 声明了 COPY 需要的文件,未声明的文件在构建时不可见:

docker: build: dockerfile: .ide/Dockerfile by: - .ide/settings.json

镜像分层设计

┌─────────────────────────────────────────────┐ │ 子项目 Dockerfile │ │ (仅安装项目专属工具和配置) │ ├─────────────────────────────────────────────┤ │ 基础镜像(本仓库) │ │ debian:trixie + code-server + 8 个插件 │ │ zsh + oh-my-zsh + starship + lsd │ │ cnb-openapi-skills + Machine 维度配置 │ └─────────────────────────────────────────────┘

快速部署

1. 在 CNB 创建仓库

在 cnb.cool 上创建一个新仓库(如 base-dev-env

2. 提交推送

git add . git commit -m "init: minimal base dev environment" git push

3. 验证

  • 推送到 main 分支后,查看「流水线」页面确认镜像构建成功
  • 点击「云原生开发」按钮,确认 Catppuccin 主题和字体生效
  • 打开 .cnb.yml,确认有 YAML Schema 自动补全

About

基础开发环境模板

example
Language
Dockerfile79.5%
Shell20.5%