一种应用包生成方法及装置与流程

专利检索2025-06-09  10


本技术各实施例属于互联网,尤其涉及一种应用包生成方法及装置。


背景技术:

1、kubernetes是一种容器编排平台,随着kubernetes的不断发展与广泛应用,越来越多的厂商和个人选择在kubernetes上部署应用。

2、然而,在kubernetes上部署应用需要应用包,而应用包的生成过程,需要考虑kubernetes上的各种依赖项和配置信息。对于不熟悉kubernetes的用户,需要耗费大量的时间和精力,才能手工填入各种依赖项和配置信息,而手工填入的时间长,因此,会耗费大量的人力资源和时间资源。因此,现有应用包的生成过程繁琐,不利于提高应用包的生成效率。


技术实现思路

1、本技术实施例提供一种应用包生成方法及装置,以解决上述现有应用包的生成过程繁琐,不利于提高应用包的生成效率的技术问题。

2、第一方面,本技术实施例提供了一种应用包生成方法,应用于电子设备,所述应用包生成方法包括:

3、获取kubernetes集群待部署的应用程序的描述文件;

4、获取所述描述文件的占位符对应的模板函数;

5、获取所述模板函数在读取目标镜像版本号和目标变量后返回的结果,将所述结果渲染到所述占位符所在的位置,得到渲染后的所述描述文件;

6、在渲染后的所述描述文件中,获取dockerfile文件和资源文件;

7、通过所述dockerfile文件构建所述应用程序对应的docker镜像;

8、对所述资源文件执行打包指令,生成所述docker镜像对应的资源包,所述资源包用于记录在所述kubernetes集群中部署所述docker镜像所需的资源;

9、将所述docker镜像、所述资源包以及渲染后的所述描述文件存储在一个所述目标文件中,将所述目标文件进行打包,生成所述应用程序的应用包。

10、本技术实施例有益效果在于两方面,一方面,将所述docker镜像、所述资源包以及渲染后的所述描述文件存储在一个所述目标文件中,将所述目标文件进行打包,生成所述应用程序的应用包,由于无需手工填入各种依赖项和配置信息,因此简化了应用包的生成过程,有利于提高应用包的生成效率;另一方面,基于一个应用程序存储在单个目标文件的方式,简化了应用包的分发过程,有利于降低应用包的分发难度。

11、在第一方面的一种可能的实现方式中,所述获取所述描述文件的占位符对应的模板函数,包括:

12、采用文本格式解析所述描述文件,得到所述描述文件的文件内容;

13、在所述文件内容中获取所述占位符,获取所述占位符对应的所述模板函数。

14、在本技术实施例中,获取模板函数,由于模板函数的代码有通用性,因此用户无需重新编写代码,有利于减少代码编写的工作量。

15、在第一方面的一种可能的实现方式中,所述通过所述dockerfile文件构建所述应用程序对应的docker镜像,包括:

16、通过所述dockerfile文件对应的进程执行镜像构建命令,生成所述应用程序对应的所述docker镜像。

17、在第一方面的一种可能的实现方式中,所述对所述资源文件执行打包指令,生成所述docker镜像对应的资源包,包括:

18、调用所述kubernetes集群的包管理器;

19、通过所述包管理器对所述资源文件执行打包指令,生成所述docker镜像对应的所述资源包。

20、在本技术实施例中,通过资源包能确定在kubernetes集群中部署docker镜像所需的资源,能避免出现docker镜像因资源不足而导致的性能问题,有利于提高docker镜像运行的稳定性。

21、在第一方面的一种可能的实现方式中,所述将所述docker镜像、所述资源包以及渲染后的所述描述文件存储在一个所述目标文件中,将所述目标文件进行打包,生成所述应用程序的应用包,包括:

22、将所述docker镜像存储在所述目标文件的第一目录中,将所述资源包存储所述目标文件的第二目录中,将渲染后的所述描述文件存储在所述目标文件的第三目录中,所述第一目录、所述第二目录和所述第三目录为所述目标文件的不同目录;

23、将所述目标文件进行打包,生成所述应用程序的应用包。

24、在本技术实施例中,通过将所述docker镜像存储在所述目标文件的第一目录中,将所述资源包存储所述目标文件的第二目录中,将渲染后的所述描述文件存储在所述目标文件的第三目录中,有助于实现docker镜像、资源包、描述文件的模块化,这不仅可以提高docker镜像、资源包、描述文件的可读性和可维护性,还可以减少docker镜像、资源包、描述文件之间的耦合,使得docker镜像、资源包、描述文件的功能更加清晰和独立。

25、在第一方面的一种可能的实现方式中,所述将所述目标文件进行打包,生成所述应用程序的应用包,包括:

26、将所述目标文件进行压缩,得到压缩后的所述目标文件;

27、对压缩后的所述目标文件进行加密;

28、将加密后的所述目标文件进行打包,生成所述应用程序的应用包。

29、在第一方面的一种可能的实现方式中,所述对压缩后的所述目标文件进行加密,包括:

30、采用预设加密算法,对压缩后的所述目标文件进行加密。

31、在本技术实施例中,采用预设加密算法,对压缩后的所述目标文件进行加密,能确保所述目标文件在传输或存储过程中没有被篡改,有利于提高所述目标文件的安全性。

32、在第一方面的一种可能的实现方式中,在将所述目标文件进行打包,生成所述应用程序的应用包之后,所述应用包生成方法还包括:

33、将所述应用包推送到镜像仓库中;

34、获取安装命令,通过所述安装命令,从所述镜像仓库中获取所述应用包,对所述应用包执行安装操作。

35、在本技术实施例中,对所述应用包执行安装操作,基于所述应用包部署所述应用程序,简化了应用程序的部署过程,有利于提高应用程序的部署效率。

36、在第一方面的一种可能的实现方式中,所述将所述应用包推送到镜像仓库中,包括:

37、获取所述docker镜像的仓库地址、镜像名和本地文件;

38、将所述仓库地址、所述镜像名和所述本地文件拼接成镜像推送指令;

39、执行所述镜像推送指令,将所述应用包推送到所述docker镜像对应的所述镜像仓库中。

40、在本技术实施例中,执行所述镜像推送指令,将所述应用包推送到所述docker镜像对应的所述镜像仓库中,后续通过镜像仓库的分发机制将所述应用包分发到在kubernetes集群的多个工作节点上,工作节点基于所述应用包部署所述应用程序,这样能确保应用程序的快速扩展。

41、第二方面,本技术实施例提供了一种应用包生成装置,包括:

42、第一获取模块,用于获取kubernetes集群待部署的应用程序的描述文件;

43、第二获取模块,用于获取所述描述文件的占位符对应的模板函数;

44、渲染模块,用于获取所述模板函数在读取目标镜像版本号和目标变量后返回的结果,将所述结果渲染到所述占位符所在的位置,得到渲染后的所述描述文件;

45、第三获取模块,用于在渲染后的所述描述文件中,获取dockerfile文件和资源文件;

46、构建模块,用于通过所述dockerfile文件构建所述应用程序对应的docker镜像;

47、生成模块,用于对所述资源文件执行打包指令,生成所述docker镜像对应的资源包,所述资源包用于记录在所述kubernetes集群中部署所述docker镜像所需的资源;

48、打包模块,用于将所述docker镜像、所述资源包以及渲染后的所述描述文件存储在一个所述目标文件中,将所述目标文件进行打包,生成所述应用程序的应用包。

49、本技术实施例有益效果在于两方面,一方面,将所述docker镜像、所述资源包以及渲染后的所述描述文件存储在一个所述目标文件中,将所述目标文件进行打包,生成所述应用程序的应用包,由于无需手工填入各种依赖项和配置信息,因此简化了应用包的生成过程,有利于提高应用包的生成效率;另一方面,基于一个应用程序存储在单个目标文件的方式,简化了应用包的分发过程,有利于降低应用包的分发难度。


技术特征:

1.一种应用包生成方法,其特征在于,所述应用包生成方法包括:

2.根据权利要求1所述的应用包生成方法,其特征在于,所述获取所述描述文件的占位符对应的模板函数,包括:

3.根据权利要求1所述的应用包生成方法,其特征在于,所述通过所述dockerfile文件构建所述应用程序对应的docker镜像,包括:

4.根据权利要求1所述的应用包生成方法,其特征在于,所述对所述资源文件执行打包指令,生成所述docker镜像对应的资源包,包括:

5.根据权利要求1所述的应用包生成方法,其特征在于,所述将所述docker镜像、所述资源包以及渲染后的所述描述文件存储在一个所述目标文件中,将所述目标文件进行打包,生成所述应用程序的应用包,包括:

6.根据权利要求1所述的应用包生成方法,其特征在于,所述将所述目标文件进行打包,生成所述应用程序的应用包,包括:

7.根据权利要求6所述的应用包生成方法,其特征在于,所述对压缩后的所述目标文件进行加密,包括:

8.根据权利要求1至7任一项所述的应用包生成方法,其特征在于,在将所述目标文件进行打包,生成所述应用程序的应用包之后,所述应用包生成方法还包括:

9.根据权利要求8所述的应用包生成方法,其特征在于,所述将所述应用包推送到镜像仓库中,包括:

10.一种应用包生成装置,其特征在于,包括:


技术总结
本申请提供了一种应用包生成方法及装置,获取Kubernetes集群待部署的应用程序的描述文件;获取描述文件的占位符对应的模板函数;获取模板函数在读取目标镜像版本号和目标变量后返回的结果,将结果渲染到占位符所在的位置,得到渲染后的描述文件;在渲染后的描述文件中,获取dockerfile文件和资源文件;通过dockerfile文件构建应用程序对应的Docker镜像;对资源文件执行打包指令,生成Docker镜像对应的资源包,资源包用于记录在Kubernetes集群中部署Docker镜像所需的资源;将Docker镜像、资源包以及渲染后的所述描述文件存储在一个所述目标文件中,将所述目标文件进行打包,生成所述应用程序的应用包。本申请有利于降低应用包的分发难度。

技术研发人员:张海飞,朱文雷,崔勤
受保护的技术使用者:北京长亭科技有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1154890.html

最新回复(0)