云原生开发

基于云原生构建的远程开发解决方案,支持 Web 和 VSCode 客户端进行远程连接。

# 设计原则

  • 声明式:基于 Dockerfile 生态的开发环境,与代码同源管理
  • 快速启动:即使是超大仓库,也可以数秒准备好代码
  • 按需使用:按需获取开发资源,闲时快速回收,避免资源浪费

# 一键创建开发环境

可在仓库分支页面,点击右上角 云原生开发 按钮,一键创建开发环境, 无需任何配置,即可直接打开一个默认的开发环境, 默认会使用 cnbcool/default-dev-env:latest 作为开发环境基础镜像。

# 自定义开发环境

如果希望点击分支页面 云原生开发 能启动一个自定义的开发环境, 可在仓库根目录下增加 .ide/Dockerfile 文件,在 Dockerfile 中自由定制开发环境, 启动开发环境时会优先使用 .ide/Dockerfile 构建一个镜像,作为开发环境基础镜像。

# .ide/Dockerfile
FROM node:20

# 以及按需安装其他软件
# RUN apt-get update && apt-get install -y git

# 安装 code-server 和 vscode 常用插件
RUN curl -fsSL https://code-server.dev/install.sh | sh \
  && code-server --install-extension redhat.vscode-yaml \
  && code-server --install-extension dbaeumer.vscode-eslint \
  && code-server --install-extension eamodio.gitlens \
  && code-server --install-extension tencent-cloud.coding-copilot \
  && echo done

# 安装 ssh 服务,用于支持 VSCode 客户端通过 Remote-SSH 访问开发环境
RUN apt-get update && apt-get install -y wget unzip openssh-server

# 指定字符集支持命令行输入中文(根据需要选择字符集)
ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8

# 自定义创建流程

如果希望点击分支页面 云原生开发 能使用自定义的 yml 流水线配置, 可在仓库根目录下新增 .cnb.yml 文件, 文件内新增如下配置:

# .cnb.yml
$:
  # vscode 事件:专供页面中启动远程开发用
  vscode:
    - docker:
        # 自定义镜像作为开发环境
        image: node:20
      services:
        - vscode
        - docker
      stages:
        - name: ls
          script: ls -al

# 自定义资源规格

可以通过 runner.cpus 声明需要的开发资源,最大支持 64核,内存为 cpus x 2(GB)。




 










# .cnb.yml
$:
  vscode:
    - runner:
        cpus: 64
      docker:
        build: .ide/Dockerfile
      services:
        - vscode
        - docker
      stages:
        - name: ls
          script: ls -al

# 自定义创建时机

通过 .cnb.yml,声明新建分支时,自动创建开发环境





 















# .cnb.yml
# 匹配所有分支
(**):
  # 创建分支时创建开发环境
  branch.create:
    - name: vscode
      services:
        # 声明使用 vscode 服务
        - vscode
      docker:
        # 自定义开发环境
        build: .ide/Dockerfile
      wework:
        title: 云原生开发
      stages:
        - name: 执行自定义脚本
          script:
            - npm install
            - npm run start