云原生开发可使用两种模式启动:
code-server
)在同一个容器中code-server
)在两个不同的容器中,两个容器的工作区(/workspace
)目录互通开发环境:可理解为用户自定义的开发环境容器(使用 .ide/Dockerfile
或自定义镜像 image
自定义)或 CNB 默认的容器环境,
其中包含了用户自己安装的软件或默认安装的软件
推荐使用单容器模式。以下方式以单容器模式启动
当用户未做任何配置(即未配置启动流水线和 .ide/Dockerfile
)时,使用默认配置启动开发环境。
默认开发环境已安装 code-server
服务和 ssh
服务,因此会使用单容器模式启动,同时支持 WebIde 和 VSCode 远程开发。
详见文档
当用户配置了启动流水线或 .ide/Dockerfile
时,自定义镜像或 .ide/Dockerfile
中已安装 code-server
服务,
此时开发环境和 code-server
服务在同一个容器中,将使用单容器模式启动。
如下三种方式(启动开发环境的镜像均安装了 code-server 服务)均使用单容器模式启动:
当开发环境容器中未安装 code-server
服务时,我们将会额外启动一个 code-server
的容器作为代码服务所在容器,
以支持 WebIde
和 Vscode
客户端访问开发环境,即双容器模式。两个容器的工作区(/workspace
)目录互通。
以下两种方式会以双容器模式启动:
双容器模式,访问 WebIde
或 VSCode
时,实际上访问的是 code-server
容器。
那么要怎么在编辑器中访问开发环境容器呢?
我们在 code-server
容器中额外支持了一个跨容器终端,即在 WebIDE 或 VSCode 客户端中,打开终端时,
默认打开的是一个可跨容器访问开发环境容器的终端,该终端名为 CNB
。
如果开发环境容器中不支持 git
命令,可切换为非 CNB
命名的其他终端,使用 code-server
自带的终端实现 git
操作。
双容器模式,访问 WebIde
或 VSCode
时,安装的 VSCode
插件在 code-server
容器中,
可能没法实现 Debug
调试之类需要访问开发环境容器的能力