基于云原生的远程开发解决方案

支持 WebIDE(浏览器) 和 VSCode 客户端进行远程开发

分支即环境:像创建分支一样,创建开发环境。

  • 声明式:基于 Dockerfile 声明开发环境,与代码同源管理
  • 秒级体验:即使是超级大仓,也可以数秒准备好代码
  • 按需使用:按需使用高性能开发资源,兼顾高配置低成本

创建开发环境支持两种方式:

  • 方法一:无需任何配置,点击按钮即可一键创建开发环境
  • 方法二:可在仓库中添加配置,实现自定义开发环境,实现在创建分支时自动创建开发环境

# 方式一:一键创建开发环境

可在仓库分支页面点击右上角 云原生开发 按钮,创建开发环境:无需任何配置,即可直接打开一个使用公共模板创建的开发环境

公共模板配置如下, 默认会使用 codingci/default-env:latest 作为基础镜像。(以下模板为公共模板,如需自定义开发环境,请参考下方进阶教程)

$:
  api_trigger_vscode:
    clouddev:
      docker:
        # 优先使用 .ide/Dockerfile 文件构建基础镜像
        # 如果仓库中不存在 .ide/Dockerfile 文件,则使用默认镜像 codingci/default-env:latest
        build: .ide/Dockerfile
        image: codingci/default-env:latest
      services:
        - vscode
        - docker
      stages:
        - name: 开启云原生开发
          type: vscode:go
  • 进阶一: 如果希望点击分支页面 云原生开发 能启动一个自定义的开发环境,可在仓库根目录下增加 .ide/Dockerfile 文件,在 Dockerfile 中自由定制开发环境,如果仓库根目录包含 .ide/Dockerfile 文件,则启动开发环境时会优先使用 .ide/Dockerfile 构建一个镜像,作为开发环境基础镜像。
# .ide/Dockerfile,在项目根目录下增加此文件, 实际配置时可根据情况安装其他软件支持
FROM node:14

# install vscode and extension
RUN curl -fsSL https://code-server.dev/install.sh | sh &&\
    code-server --install-extension redhat.vscode-yaml &&\
    code-server --install-extension orta.vscode-jest &&\
    code-server --install-extension dbaeumer.vscode-eslint &&\
    code-server --install-extension eamodio.gitlens &&\
    echo done

# 指定字符集支持命令行输入中文(根据需要选择字符集)
ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8
  • 进阶二: 如果希望点击分支页面 云原生开发 能使用自定义的 yml 流水线配置, 可在仓库根目录下新增 .coding-ci.yml 文件, 文件内新增如下配置:
# 如下配置可覆盖默认配置
$:
  api_trigger_vscode:
    # 此处使用数组格式, 可覆盖掉默认配置中的对象格式
    # 可根据实际情况修改下方配置
    - docker:
        build: .ide/Dockerfile
        image: codingci/default-env:latest
      services:
        - vscode
        - docker
      stages:
        - name: 开启云原生开发
          type: vscode:go

# 方式二:自定义开发环境

如需自定义开发环境,可参考如下配置。

# 1、如何配置开发环境

  • 第一步:使用 Dockerfile 声明开发环境。
# .ide/Dockerfile,在项目根目录下增加此文件
FROM node:14

# install vscode and extension
RUN curl -fsSL https://code-server.dev/install.sh | sh &&\
    code-server --install-extension redhat.vscode-yaml &&\
    code-server --install-extension orta.vscode-jest &&\
    code-server --install-extension dbaeumer.vscode-eslint &&\
    code-server --install-extension eamodio.gitlens &&\
    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
  • 第二步: 通过 .coding-ci.yml,声明新建分支时,自动创建开发环境
# .coding-ci.yml
# 匹配所有分支
(**):
  # 创建分支时自动创建创建开发环境
  branch.create:
    - name: vscode
      services:
        # 声明使用 vscode
        - vscode
      docker:
        # 自定义开发环境
        build: .ide/Dockerfile
      wework:
        title: 云原生开发
      stages:
        # - name: 执行自定义脚本
        #   script:
        #     - npm install
        #     - npm run start
        - name: ready
          type: vscode:go

# 2、如何启动开发环境?

从仓库页面创建分支,即可触发自动创建开发环境。

在远程开发环境中修改了 Dockerfile 后如何验证呢?重建开发环境即可:

  • 方法一:等开发环境销毁后(默认 10 分钟后自动销毁,也可在构建日志页面点击 stop 按钮主动销毁), 销毁后打开原来的 WebIDE 页面会出现 重建环境 按钮,点击按钮即可重建开发环境

  • 方法二:修改提交后,基于修改后的 commit 创建新分支,可触发基于新的修改创建开发环境