使用技巧

# 快捷键

# 浏览器剪贴板授权

浏览器中使用 ctrl/command + v 快捷键粘贴,可能会弹出剪贴板授权框, 可使用以下方法避免弹出授权框:

  • 使用以下快捷键粘贴,不会弹出 Chrome 的剪贴板授权框。

    • win: shift + insert
    • mac: shift + command + v
  • 浏览器设置中添加剪贴板授权

复制 chrome://settings/content/clipboard 到 chrome 浏览器中打开剪贴板设置, 添加网站域名到 允许查看您的剪贴板 列表中。

具体打开路径:设置 -> 隐私设置和安全 -> 权限(更多权限) -> 剪贴板 -> 允许查看您的剪贴板

# 解决快捷键冲突

当 WebIDE 快捷键跟浏览器快捷键冲突,如何解决:

  • 使用 VSCode 客户端开发

# VSCode/Cursor 客户端远程开发

云原生开发默认环境支持 WebIDE、VSCode 客户端、Cursor 客户端远程开发。

但开发者如果选择自定义开发环境,需做以下配置来支持 VSCode 客户端 和 Cursor 客户端远程开发:

# 如何支持 VSCode/Cursor 客户端

  • 开发环境中安装 openssh-server

自定义开发环境时可在 Dockerfile 文件中提前安装好 ssh 服务。

# .ide/Dockerfile
FROM your-image

# 注意:基础镜像不同,安装方式可能存在差异,可根据实际情况采用不同安装方式
apt-get update
apt-get install -y openssh-server
  • 下载 VSCode/Cursor 客户端,并安装 Remote-SSH 插件

# 解决 VSCode/Cursor 窗口覆盖问题

点击打开 VSCode 客户端按钮,可能会出现覆盖原有窗口问题。

可修改 VSCode/Cursor 设置解决问题:将 Open Folders In New Window 设置为 on 来实现每次打开新窗口。

设置路径如下:

  • Manage -> Settings -> User -> Window -> New Window -> Open Folders in New Window
  • 管理 -> 设置 -> 用户 -> 窗口 -> 新建窗口 -> Open Folders in New Window

# 文件漫游

远程开发支持部分配置文件漫游:环境销毁后,再次创建开发环境,漫游的文件可恢复到开发环境中。 最大漫游容量:64MB,超过最大容量将报错且无法漫游。

# 漫游内容

以下文件或文件夹会按用户维度进行漫游, 对所有项目有效果(~: 当前用户的主目录,一般是 /root 目录):

  • ~/.*rc:bash、zsh 等配置
  • ~/.*profile:bash、zsh 等配置
  • ~/.local/share/code-server/User/settings.json:WebIDE 配置文件
  • ~/.vscode-server/data/Machine/settings.json:VSCode 客户端配置文件
  • ~/.local/share/code-server/User/snippets/*::VSCode 相关配置
  • ~/.cnb: 用户可按需在该目录下新增个人环境所需配置文件。

关于 ~/.cnb 目录的使用说明:

  • 新增配置文件:如果仓库需要新增个人配置文件 .env.local, 用于存储仓库所需的个人环境变量,可在 ~/.cnb 目录下新增 .env.local 文件
  • 在环境启动后可配置脚本任务~/.cnb/.env.local 复制或软链到工作目录(默认为/workspace), Yaml 配置如下
  • .gitignore 中新增忽略文件 .env.local,避免个人配置文件被提交到仓库

1、示例一,复制文件到工作目录:

要修改漫游的配置文件,需直接修改 /root/.cnb/.env.local

# .cnb.yml
$:
  vscode:
    - name: vscode
      services:
        - vscode
      stages:
        - name: 复制 .env.local 文件到工作目录(仓库根目录)
          # ./ 是工作目录,默认为 /workspace
          script: |
            if [ -e "/root/.cnb/.env.local" ]; then
                cp -f /root/.cnb/.env.local ./
            else
                echo "文件不存在"
            fi

2、示例二,软链文件到工作目录:

要修改漫游的配置文件,可修改工作目录的 /workspace/.env.local(软链方式会同步修改源文件)

# .cnb.yml
$:
  vscode:
    - name: vscode
      services:
        - vscode
      stages:
        - name: 软链 .env.local 文件到工作目录(仓库根目录)
          # ./ 是工作目录,默认为 /workspace
          script: |
            if [ -e "/root/.cnb/.env.local" ]; then
                ln -sf /root/.cnb/.env.local ./.env.local 
            else
                echo "文件不存在"
            fi

# 漫游原理和时机

漫游时机:

用户在开发环境修改配置(如 settings.json)后,不会立马漫游修改内容, 而是等到开发环境销毁时,再从开发环境中取出需漫游的文件进行持久化存储

如何恢复漫游文件:

重建开发环境时,会自动将漫游的文件恢复到开发环境中

如何验证文件是否漫游成功:

修改可漫游文件后如需验证修改效果,需等到开发环境销毁后,再创建/重建开发环境才能看到修改文件的漫游效果

# 如何访问业务端口

方法一:

可通过 VSCode/Cursor 客户端的 port forward 端口转发能力转发需要访问的业务端口到本地

方法二:

使用 WebIDE 时,假如启动服务 0.0.0.0:8080WebIDE url 为 https://cnb-xxx-xxxxxx-001.cnb.xxx.com。 可使用 https://cnb-xxx-xxxxxx-001-8080.cnb.xxx.com (域名部分加上中划线端口号 -8080)访问业务端口启动的服务。

注意,启动在 localhost127.0.0.1 上的服务,无法使用方法二访问

# VSCode 配置文件漫游

# 配置文件路径

WebIDE 的配置文件(settings.json)路径:

  • 用户维度:~/.local/share/code-server/User/settings.json
  • 机器纬度:~/.local/share/code-server/Machine/settings.json
  • 仓库维度:.vscode/settings.json。相对目录为当前工作区(默认为 /workspace),即仓库根目录

VSCode 客户端(Remote-SSH) 的配置文件(settings.json)路径:

  • 用户维度:存在用户本地,可自行配置
  • 机器纬度:~/.vscode-server/data/Machine/settings.json,将会被漫游
  • 仓库维度:.vscode/settings.json。相对目录为当前工作区(默认为 /workspace),即仓库根目录

# 更多共享策略

  • 用户维度共享:可实现同一个用户的配置共享,不同用户隔离

对于 WebIDE:用户纬度的配置文件(settings.json)会被自动漫游,且只对用户自己生效。 对于 VSCode/Cursor 客户端:由于用户纬度配置文件存在本地,因此机器纬度的配置文件(settings.json)会被自动漫游,且只对用户自己生效。

修改配置后,创建更多的开发环境,配置文件会被自动复制。

  • 仓库维度共享:可实现同一个仓库的配置共享,不同仓库隔离

如何在同一个仓库内共享配置:提交 .vscode/settings.json 文件到仓库即可

  • 环境维度共享:可实现跨仓库的环境共享

假设你已经有构建好的开发环境镜像,那么可以直接使用在 Yaml 配置中:









 

# .cnb.yml
$:
  vscode:
    - name: vscode
      services:
        - vscode
      docker:
        # 使用自定义镜像作为开发环境
        image: groupname/imagename:latest

# 工作区未提交代码如何保存

工作区存在未提交的代码,无需担心开发环境销毁时会丢失。

# 未提交代码如何保存

工作区未提交的代码不必担心会丢失, 开发环境销毁时,会自动将工作区未提交代码提交到远程不可见分支。

# 保存的代码如何恢复到工作区

重建开发环境时,会自动将上述保存内容恢复到开发环境。

# 如何安装 VSCode 扩展

自定义开发环境时可在 Dockerfile 中安装常用的 VSCode 扩展,方便复用,有以下两种安装方式。

# 通过扩展 id 安装

code-server --install-extension ${扩展 id}

扩展 id 如何查看:在 WebIDE 或 open-vsx 搜索插件,在插件详情页查看扩展 id。

# 通过 vsx 扩展文件安装

code-server --install-extension ms-python.python.vsx

说明:WebIDE 使用的扩展源是 open-vsx (开源), 非 微软官方扩展源(闭源), 如果 open-vsx 缺失某些插件,可在 微软官方扩展源 搜索插件, 在插件详情页下载 vsx 源文件安装。







 
 
 
 
 









# .ide/Dockerfile
FROM node:20

# 安装 code-server 和插件
# 方法一:通过 id 安装插件
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 \
  && 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

# 如何修改资源规格

支持定制开发环境 cpu 和内存配置。

目前默认配置是 cpus: 8核,内存:16G。

可通过定制 Yaml 配置修改 cpu 和内存配置