一、功用简介

编程免不了要写装备文件,怎样写装备也是一门学识。YAML是专门用来写装备文件的言语,十分简洁和强大。

Cloud Studio高阶玩家:强大的YAML模板

了解到一些用户在Cloud Studio开发项目的时分,环境上需求依赖一些组件,项目中也会运用到编辑器的插件。 而假如这些都需求用户自己去装置和准备,则会十分的繁琐,也不利于用户共享自己的作业空间给其他协作搭档创建副本。 因而我们设计出了YAML模板这个功用,用于处理这个问题。 关于YAML的简介,传送门:YAML言语教程(www.ruanyifeng.com/blog/2016/0…

二、功用进口

功用的进口在各模板页面的内容右上角:

Cloud Studio高阶玩家:强大的YAML模板

分为两个功用:

Cloud Studio高阶玩家:强大的YAML模板

  • 手动新建

  • 导入workspcace.yml

三、手动新建

Cloud Studio高阶玩家:强大的YAML模板

该表单一共有7项能够填充的。

Cloud Studio高阶玩家:强大的YAML模板

  • 环境镜像,顾名思义就是决议你模板的基本环境,供给了大多数言语的的开发环境。

Cloud Studio高阶玩家:强大的YAML模板

  • 额外资源,现在供给mysql和redis预装置。

Cloud Studio高阶玩家:强大的YAML模板

  • 预装插件,为作业空间默认装置VSCode插件,支撑挑选版本。

Cloud Studio高阶玩家:强大的YAML模板

Cloud Studio高阶玩家:强大的YAML模板

自界说指令, 支撑在不同阶段履行自界说Shell指令。

Cloud Studio高阶玩家:强大的YAML模板

分为:初始化指令,发动指令,关机指令。支撑tab键跳转下一行。

  • 环境变量,免去装备一堆默认环境变量的烦恼。

Cloud Studio高阶玩家:强大的YAML模板

(一)导出/导入workspace.yml

该功用能够挑选一个在手动新建阶段导出的workspace.yml文件,能够处理多人运用同一个装备情况下需求一起装备相同模板的烦恼。

Cloud Studio高阶玩家:强大的YAML模板

四、解读workspace.yml

一个成熟的workspace.yml长成这样:

---
#这是模板称号
name:"react-demo"
#这是模板描述
description:"一个简易YAML示例"
#这是模板的用于区分的tag
tags:
-"Node.js"
-"React"
#模板创建的作业空间翻开时主动拉取的代码库房
repository:"https://e.coding.net/coding-public/cloud-studio-samples/react-quickstart.git"
#默认拉取的分支
ref:"master"
#界说的环境变量
envs:
-name:"PROJECT_NAME"
value:"thisisareact-demoproject"
#翻开作业空间主动装置插件
extensions:
-"msjsdiag.vscode-react-native@1.9.3"
-"vscode.typescript@1.62.3"
#界说了生命周期,共分为init、start、destory
lifecycle:
init:
-name:"updateaptcache"
command:"aptupdate"
-name:"installnginx"
command:"aptinstall-ynginx"
start:
-name:"runnginx"
command:"servicenginxstart"
#sidecar界说了需求发动的隶属组件,现在仅支撑mysql和redis
sidecar:
mysql:
enabled:true
password:"123456"
database:"test"
redis:
enabled:true
password:"123456"
#初始镜像id,请勿手动修正
image_id:5

让我们来一项项拆解。

  • envs: 对应初始环境变量。

  • extensions:界说的是编辑器中需求运用的插件,比如Maven for Java等等。

Cloud Studio高阶玩家:强大的YAML模板

lifecycle:

lifecycle中界说的是整个项目的生命周期各个阶段需求履行的内容,各个界说的生命周期如下图所示:

Cloud Studio高阶玩家:强大的YAML模板

  • init:首次创建空间后的发动,发动后履行。

  • start:日常发动空间后履行。

  • destroy:停止空间前履行。

注意:因为运行时机的原因,init和start阶段的lifecycle指令不能运用由代码库房中的文件、脚本等内容构成的可履行指令。

sidecar

常用的组件,支撑以sidecar界说,现在支撑的组件有mysql、redis,假如你的项目需求运用到这两类组件,则界说enabled为true即可,不然能够置为false。

sidecar方式运行原理如下图,在作业空间中,用户所能看到的为编辑器部分,而mysql、redis是以同级的方式进行运行,经过网络端口连通。

Cloud Studio高阶玩家:强大的YAML模板

五、运用YAML模板

以电商模版为例阐明怎么运用

Cloud Studio高阶玩家:强大的YAML模板

电商模版运用 SpringBoot(2.1.5) 和Java JDK(11)版本。

Cloud Studio高阶玩家:强大的YAML模板

---

name: "java-demo"
description: "一个简易YAML 示例"
tags:
- "Java"
ref: "master"
extensions:
- "Pivotal.vscode-spring-boot"
- "vscjava.vscode-maven@0.34.0"
lifecycle:
init:
- name: "update apt cache"
command: "apt update"
- name: "install mysqlclient"
command: "apt-get install -y mysql-client"
start:
sidecar:
mysql:
enabled: true
password: "123456"
database: "uzymall"
redis:
enabled: true
password: "uzymall"
image_id: 4

界说中用到了springboot和maven的插件,初始化只需求装置mysqlclient,用于开发调试时登录数据库检查数据,一起,数据组件中运用到了mysql组件,因而只翻开了mysql的界说。

项目中对应文件修正:

Cloud Studio高阶玩家:强大的YAML模板

翻开空间后,因为也界说了.vscode/preview.yml的内容,因而空间每次翻开会履行指定的run指令,即刻能够预览本电商运用发动后的页面作用。

Cloud Studio高阶玩家:强大的YAML模板

图示为空间翻开完成后的作用:

Cloud Studio高阶玩家:强大的YAML模板

您能够经过以下两个 链接检查由该功用生成的作业空间,并能够将workspace.yml仿制下来体会运用:

cloudstudio.net/templates/h…

Cloud Studio高阶玩家:强大的YAML模板

cloudstudio.net/templates/h…

Cloud Studio高阶玩家:强大的YAML模板

六、怎么运用sidecar

Cloud Studio高阶玩家:强大的YAML模板

阅读原文