优维低代码:定制构件的打包及部署

news2024/12/26 10:40:10

 优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。


连载第四十五期

《现场定制:定制构件的打包及部署》

# 打包

对于用 create-next-repo 脚手架生成的仓库,我们提供了一个简单的命令去打包对应的构件库。在项目根目录下直接运行lerna run pack:tar --scope=YOUR-BRICKS-OR-MICRO-APPS, 执行后会在对应的库目录下生成最终的 tar 包。如:

  • 打包 micro-apps/hello-world:lerna run pack:tar --scope=@micro-apps/hello-world,生成的 tar 包在 micro-apps/hello-world/hello-world-NA.tar.gz
  • 打包 bricks/hello-world:lerna run pack:tar --scope=@bricks/hello-world,生成的 tar 包在 bricks/hello-world/hello-world-NB.tar.gz

但在执行打包命令之前,建议你先排查依赖是否声明准确,brick_next 对依赖的管理相当严格,不然会是一堆的报错。详细见[下文](#micro-apps 打包报依赖错误)

# 包的命名及部署规范

  • micro-apps打出来的包后缀是叫-NA,部署路径在/usr/local/easyops/applications/xxxx
  • bricks打出来的包后缀是叫-NB,部署路径在/usr/local/easyops/bricks/xxxx
  • templates打出来的包后缀叫-NT,部署路径在/usr/local/easyops/templates/xxxx

# 可能出现的错误

micro-apps 打包报依赖错误

 请检查:

  1. storyboard.json 的一级字段 imports 有没都加入相关的构件依赖声明
  2. 在 micro-apps/you-micro-app-name/package.json 中的 peerDependencies 也需要加上对应构件的版本依赖,如果不知道构件版本,可写成>1.0.0
  3. 在项目的顶级 package.json 中的 devDependencies 也需要加上对应的字段,如果不知道构件版本,可写成>1.0.0

最终效果见

 # 部署

# 手工部署

将打好的包上传到机器,如上传到 /tmp/hello-world-NA.tgz

如果是-NA包(micro-apps):

cd /usr/local/easyops/applications && mkdir hello-world-NA
# 由于 npm 打包原因,注意第一层目录是叫 package,故要忽略第一级目录
tar -zxvf /tmp/hello-world-NA.tgz --strip-components 1 -C hello-world-NA
chown -R easyops:easyops hello-world-NA
cd hello-world-NA && bash deploy/install_postscript.sh

如果是-NB包(bricks)

cd /usr/local/easyops/bricks && mkdir hello-world-NB
# 由于 npm 打包原因,注意第一层目录是叫 package,故要忽略第一级目录
tar -zxvf /tmp/hello-world-NB.tgz --strip-components 1 -C hello-world-NB
chown -R easyops:easyops hello-world-NB
cd hello-world-NB && bash deploy/install_postscript.sh

如果是-NT包(templates)

cd /usr/local/easyops/templates && mkdir hello-world-NT
# 由于 npm 打包原因,注意第一层目录是叫 package,故要忽略第一级目录
tar -zxvf /tmp/hello-world-NT.tgz --strip-components 1 -C hello-world-NT
chown -R easyops:easyops hello-world-NT
cd hello-world-NT && bash deploy/install_postscript.sh

# 平台部署

  1. 将包上传到平台的程序包,注意要包名和部署路径要遵循 包的命名及部署规范
  2. 建立对应的应用,并绑定第 1 步的程序包(建议应用名与包名一致)
  3. 在应用设置里面,新建集群及关联平台的相关主机(如果是集群部署,将部署了brick_next组件的 ip 都勾选上,一般是 2~3 台)
  4. 执行主机部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Python写一个BMI计算代码

有粉丝问我怎么写一个BMI算法,安排 height float(input("请输入身高(米): ")) weight float(input("请输入体重(千克): ")) 计算BMI bmi weight / (height ** 2) 显示结果 print("您的…

MySQL8.0.32安装以及环境配置

文章目录一、安装MySQL二、错误集1. 如果操作失误,可以重新安装一、安装MySQL 下载MySQL的社区版的压缩包:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.32-winx64.zip 将压缩包解压到你要安装的目录中 将对应的安装路径添加到环境变量中…

Java面试核心知识点梳理(二)——Java集合

文章目录前言1. List1.1 ArrayList(数组)1.2 Vector(数组、线程安全)1.3 LinkedList(链表)2. Set2.1 HashSet(Hash表)2.2 TreeSet(二叉树)2.3 LinkHashSet&am…

3分钟通过日志定位bug,这个技能测试人必须会

♥ 前 言 软件开发中通过日志记录程序的运行情况是一个开发的好习惯,对于错误排查和系统运维都有很大帮助。 Python 标准库自带了强大的 logging 日志模块,在各种 python 模块中得到广泛应用。 一、简单使用 1. 入门小案例 import logging logging.ba…

国内Google翻译失效的解决方法(MAC/WIN)

Google宣布停止在中国大陆的翻译服务,原因是:使用率低??,这导致Chrome浏览器网页翻译失效。对于一些使用Chrome,经常鼠标下一秒就在大洋彼岸扒拉资料,且英语不太好的同学来说变得非常难受。为此…

【软考中级·网络工程师】校验码差错控制

差错控制🍉 无论通信系统如何可靠,都不能做到完美无缺。因此,必须考虑怎样发现和纠正信号传输重的差错。通信过程中出现的差错大致可以分为两类: 一类是由热噪声引起的随机错误;热噪声:一种由电子的热运动…

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升

专题一 空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 ​ 专题二 ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化:地图符号…

无头盔PICO-unity开发日记3(UI按钮点击)

目录 1.UI界面加入组件 2.加入xr输入模块 3.设置光线投射遮罩 结果: 前提:做好一个ui界面 1.UI界面加入组件 画布加跟踪设备图形光线投射仪(tracked device graphic raycaster) 允许画布被追踪设备操纵 2.加入xr输入模块 sys…

C++ --模拟实现搜索二叉树

文章目录#搜索二叉树1. 搜索二叉树特点2. 操作分析2.0 结点结构2.1 插入2.2 升序查看2.3 查找2.4 删除2.5 前序拷贝构造3. 完整代码4. 时间复杂度分析5. 简单应用5.1 字典搜索5.2 统计次数#搜索二叉树 1. 搜索二叉树特点 若它的左子树不为空,则左子树上所有节点的…

Dockerfile及新型容器镜像构建技术

文章目录一、容器镜像分类1、操作系统类2、应用类二、容器镜像获取方法1、在dockerhub直接下载2、把操作系统中文件系统打包为容器镜像3、把正在运行的容器打包为容器镜像,即docker commit4、通过dockerfile实现容器镜像的自定义以及生成三、dockerfile1、dockerfil…

数据库管理系统PostgreSQL部署安装完整教程

PostgreSQL是一个开源的关系型数据库管理系统,它支持大量的数据类型和复杂的查询语言,可以用于各种应用程序。它是一个高性能的数据库,可以处理大量的数据,并且具有良好的可扩展性和可靠性。 目录 一.Linux系统安装PostgresSQL&a…

机器学习——线性模型之Softmax回归

问:Softmax回归模型是一种典型处理多分类任务的非线性分类模型 答:错误。Softmax回归是线性分类模型。实际上是逻辑回归的拓展,它将逻辑回归的二分类推广到了多分类,用逻辑回归的方法解决多分类问题。 线性模型——Softmax回归 …

Linux之基础IO

文章目录一.关于文件的共识二.复习C语言的文件操作1.打开文件2.向文件中写入数据3.向文件中追加数据三.有关文件的系统调用1.open(文件打开)2.write(向文件写入)3.read(读文件)四.文件描述符1.进程如何找到自己的文件2.为什么文件…

leetcode刷题(3)

各位朋友们大家好,今天是我leedcode刷题系列的第三篇,废话不多说,直接进入主题。 文章目录分割链表题目要求用例输入提示做题思路c语言代码实现Java代码实现相交链表题目要求用例输入提示做题思路c语言实现代码Java代码实现分割链表 leetcod…

KDSL-82轻型升流器

一、产品概述 KDSL-82 1000A大电流发生器是一种作为检验用的电流源,大电流试验器采用ARM芯片控制输出工艺和大容量的环形变压器,并且配有液晶屏显示的表计,同时显示一、二次电流、变比和秒表接点(或电位)的动作时间。外配铝合金机箱&#xff…

OceanMind海睿思受邀参加中小企业数字化转型发展论坛

近日,由江苏省企业信息化协会主办的中小企业数字化转型发展论坛于南京圆满结束。论坛重点邀请了南京市中小企业制造标杆、专精特新“小巨人”企业等相关信息化负责人和IT工作者共同探讨中小企业数字化转型的发展路径。 OceanMind海睿思作为南京地区大数据领域优秀代…

自然语言大模型介绍

1 简介 最近一直被大语言模型刷屏。本文是周末技术分享会的提纲,总结了一些自然语言模型相关的重要技术,以及各个主流公司的研究方向和进展,和大家共同学习。 2 Transformer 目前的大模型基本都是Transformer及其变种。本部分将介绍Transf…

FPGA基于XDMA实现PCIE X4的HDMI视频采集 提供工程源码和QT上位机程序和技术支持

目录1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案5、vivado工程详解6、驱动安装7、QT上位机软件8、上板调试验证9、福利:工程代码的获取1、前言 PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI …

自动化测试用什么框架?Pytest框架 vs Unittest框架,企业使用分析......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 安装方式不同 unit…

JavaWeb开发 —— 分层解耦

目录 一、三层架构 二、分层解耦 三、IOC & DI 入门 四、IOC控制反转详解 五、DI依赖注入详解 一、三层架构 在 JavaWeb开发 —— 请求响应 最后案例中我们编写的程序代码都是写在 Controller 当中。 而在我们实际软件设计和开发中,会尽量让每一个接口、类…