601 字约 2 分钟
通过 Docker 镜像指定开发环境
在 .cnb.yml 中编写云原生开发事件流水线,通过 pipeline.docker.image 指定开发环境镜像。
.cnb.yml
$:
vscode:
- docker:
# 指定开发环境镜像,可以是任意可访问的镜像。
# 如果 image 指定的镜像中已安装 code-server 代码服务,将使用单容器模式启动开发环境
# 如果 image 指定的镜像中未安装 code-server 代码服务,将使用双容器模式启动开发环境
# 如下镜像为 CNB 默认开发环境镜像,已安装代码服务,将使用单容器模式启动开发环境
# 可按需替换为其他镜像
image: cnbcool/default-dev-env:latest
services:
- vscode
- docker
# 开发环境启动后会执行的任务
stages:
- name: ls
script: ls -al通过 Dockerfile 自定义开发环境
如果指定镜像无法满足需求,可在仓库根目录创建 .ide/Dockerfile 来自定义开发环境。
未自定义启动流水线时,系统会优先使用 .ide/Dockerfile 构建镜像作为基础镜像。 如果 .ide/Dockerfile 不存在或构建失败,会回退使用默认镜像。
# .ide/Dockerfile
# 可将 node 替换为需要的基础镜像
FROM node:20
# 安装 code-server 和 vscode 常用插件
RUN curl -fsSL https://code-server.dev/install.sh | sh \
&& code-server --install-extension cnbcool.cnb-welcome \
&& code-server --install-extension redhat.vscode-yaml \
&& code-server --install-extension dbaeumer.vscode-eslint \
&& code-server --install-extension waderyan.gitblame \
&& code-server --install-extension mhutchie.git-graph \
&& code-server --install-extension donjayamanne.githistory \
&& code-server --install-extension tencent-cloud.coding-copilot \
&& echo done
# 安装 ssh 服务,用于支持 VSCode 等客户端通过 Remote-SSH 访问开发环境(也可按需安装其他软件)
RUN apt-get update && apt-get install -y git wget unzip openssh-server
# 指定字符集支持命令行输入中文(根据需要选择字符集)
ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8同时自定义开发环境和启动流程
如果需要同时自定义开发环境和启动流程,可同时编写 .ide/Dockerfile 和 .cnb.yml。 Dockerfile 内容与上文相同,此处不再重复。
.cnb.yml 中使用 build: .ide/Dockerfile 指定自定义构建:
.cnb.yml
$:
vscode:
- docker:
build: .ide/Dockerfile
# 也可同时指定 image 作为回退:
# image: cnbcool/default-dev-env:latest
services:
- vscode
- docker
stages:
- name: ls
script: ls -al