首页 > 其他分享 >Cloud Studio 高阶玩家:强大的 YAML 模板

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

时间:2023-05-19 18:45:29浏览次数:43  
标签:name sidecar YAML Studio Cloud mysql yml 模板

1. 功能简介

编程免不了要写配置文件,怎么写配置也是一门学问。YAML 是专门用来写配置文件的语言,非常简洁和强大。

img

了解到一些用户在Cloud Studio开发项目的时候,环境上需要依赖一些组件,项目中也会使用到编辑器的插件。

而如果这些都需要用户自己去安装和准备,则会非常的繁琐,也不利于用户分享自己的工作空间给其他协作同事创建副本。

因此我们设计出了YAML模板这个功能,用于解决这个问题。

关于YAML 的简介,传送门:YAML 语言教程

2. 功能入口

功能的入口在各模板页面的内容右上角:

img

分为两个功能:

img

  1. 手动新建
  2. 导入workspcace.yml

3. 手动新建

img

该表单一共有 7 项可以填充的。

img

  1. 环境镜像,顾名思义就是决定你模板的基本环境,提供了大多数语言的的开发环境

img

  1. 额外资源,目前提供 mysql 和 redis 预安装

img

  1. 预装插件,为工作空间默认安装 VSCode 插件,支持选择版本。

img

img

  1. 自定义命令, 支持在不同阶段执行自定义 Shell 命令。

img

分为:初始化命令,启动命令,关机命令支持 tab 键跳转下一行。

  1. 环境变量,免去配置一堆默认环境变量的烦恼。

img

3.1 导出/导入 workspace.yml

该功能可以选择一个在手动新建阶段导出的workspace.yml文件,可以解决多人使用同一个配置情况下需要同时配置相同模板的烦恼。

img

4. 解读 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: "this is a react-demo project"
# 打开工作空间自动安装插件
extensions:
- "[email protected]"
- "[email protected]"
# 定义了生命周期,共分为init、start、destory
lifecycle:
  init:
  - name: "update apt cache"
    command: "apt update"
  - name: "install nginx"
    command: "apt install -y nginx"
  start:
  - name: "run nginx"
    command: "service nginx start"
# 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等等

img

  • lifecycle

lifecycle 中定义的是整个项目的生命周期各个阶段需要执行的内容,各个定义的生命周期如下图所示:

img

  1. init:首次创建空间后的启动,启动后执行。
  2. start:日常启动空间后执行。
  3. destroy:停止空间前执行。

注意:由于运行时机的原因,initstart 阶段的 lifecycle 命令不能使用由代码仓库中的文件、脚本等内容构成的可执行命令

  • sidecar

常用的组件,支持以sidecar定义,目前支持的组件有mysqlredis,如果你的项目需要使用到这两类组件,则定义enabledtrue即可,否则可以置为false

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

img

  1. 使用YAML模板

以电商模版为例说明如何使用

img

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

img

---
name: "java-demo"
description: "一个简易YAML 示例"
tags:
- "Java"
ref: "master"
extensions:
- "Pivotal.vscode-spring-boot"
- "[email protected]"
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

定义中用到了springbootmaven的插件,初始化只需要安装mysqlclient,用于开发调试时登录数据库查看数据,同时,数据组件中使用到了mysql组件,因此只打开了mysql的定义。

项目中对应文件修改:

img打开空间后,由于也定义了.vscode/preview.yml的内容,因此空间每次打开会执行指定的run命令,即刻可以预览本电商应用启动后的页面效果。

img

图示为空间打开完成后的效果:

img

您可以通过以下两个 链接查看由该功能生成的工作空间,并可以将workspace.yml复制下来体验使用:

  1. https://cloudstudio.net/templates/hBswiZB0M4Z

img

  1. https://cloudstudio.net/templates/hQGhL1EYuEF

img

6. 如何使用 sidecar

img

标签:name,sidecar,YAML,Studio,Cloud,mysql,yml,模板
From: https://www.cnblogs.com/codingdevops/p/17416024.html

相关文章

  • Cloud Studio 内核升级之触手可及
    前言CloudStudio是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用CloudStudio时无需安装,随时随地打开浏览器就能使用。云端开发体验与本地几乎一样,上手门槛更低;具有极强的开放性,第三方平台通过我们提供的SDK,则可以方便地集成CloudStud......
  • ​Cloud Studio 云端开发保障企业源代码安全
    为什么需要保证企业源代码安全随着时代的发展,各行各业的企业或多或少都会与软件源代码打交道,借助软件系统更好地提升企业办公效率,而软件的源代码也自然成了一种企业新型资产。如何确保企业源代码不外泄,成为了各个企业特别关心的痛点问题。这个问题存在已久,各个企业根据自身......
  • 更高效便捷的开发体验——Cloud Studio 编辑器命令行工具
    CloudStudio是一个云端在线开发平台,在CloudStudio的控制台页面中,可以方便快捷创建或者打开一个工作空间。工作空间提供了在线编辑器给大家访问远端开发环境。大部分开发时间都与这个在线编辑器打交道,在线编辑器效果如下图所示:通过该在线编辑器,可以使用编辑器UI进行如下操......
  • svn Ignore for Visual Studio C#
    *.o*.lo*.la*.al.libs*.so*.so.[0-9]**.a*.pyc*.pyo*.rej*~#*#.#*.*.swp.DS_Store.vs*/bin*/obj*/Release*/Debug*.suo*.err*.log*.obj*.bin*.LOG*.user*.pdb[tT]emp[tT]empPEAnkh.Loadthumbs.db*.resharper*.vspscc*.vsssccc*.scc*/_Re......
  • Cloud Studio 内核升级之持续优化
    前言CloudStudio是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用CloudStudio时无需安装,随时随地打开浏览器就能使用。云端开发体验与本地几乎一样,上手门槛更低;具有极强的开放性,第三方平台通过我们提供的SDK,则可以方便地集成CloudS......
  • solrcloud 7.5在k8s上的部署安装和使用教程
    全栈工程师开发手册(作者:栾鹏)架构系列文章solr的dockerhub官网:https://hub.docker.com/_/solr/solr简介ApacheSolr支持不同格式,例如数据库,PDF文件,XML文件,CSV文件。7.5版本的主要升级内容:https://www.w3cschool.cn/solr_doc/solr_doc-s4kg2fp6.html为什么选择ApacheSolrApa......
  • visual studio 智能提示是英文,改成中文
    一、.NETFramework1.打开文件夹C:\ProgramFiles(x86)\ReferenceAssemblies\Microsoft\Framework\.NETFramework 2. 把v4.X文件夹里的zh-Hans文件夹复制到你需要的版本文件夹里。3.重启VS即可。 ......
  • Discourse 的用户信息中的 IP 地址显示的是 CloudFlare 的 IP 地址
    因为使用了CloudFlare的反向地址。所有Discourse获得的用户的IP地址其实是CloudFlare的服务器地址。  修改好在Discourse已经提供了相关的解决方案。需要在Discourse的配置文件中,添加下面的内容:“templates/cloudflare.template.yml”  然后重新......
  • FL Studio21那个版本最便宜,2023年那个版本更适合新手使用
    前阵子世界级电音盛会Tomorrowland在比利时如期举行,拉开了疫情下Rave文化复兴的帷幕。而国内,也推出了如《超感星电音》等电子音乐综艺,在节目上大家也更多地了解到了电子音乐的制作过程。节目中最被大家看好的制作人Carta所使用的FLStudio这款软件也因此被许多观众所记住,大......
  • Go常见问题(一)Visual Studio Code 无法识别 go 指令
    参考链接:https://www.jianshu.com/p/e2ddc10588fc $env:Path=[System.Environment]::GetEnvironmentVariable("Path","Machine")......