CN112506615B - JavaWeb应用部署方法、装置、设备及存储介质 - Google Patents

JavaWeb应用部署方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112506615B
CN112506615B CN202011445544.0A CN202011445544A CN112506615B CN 112506615 B CN112506615 B CN 112506615B CN 202011445544 A CN202011445544 A CN 202011445544A CN 112506615 B CN112506615 B CN 112506615B
Authority
CN
China
Prior art keywords
application
software package
container
application software
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011445544.0A
Other languages
English (en)
Other versions
CN112506615A (zh
Inventor
许存梁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202011445544.0A priority Critical patent/CN112506615B/zh
Publication of CN112506615A publication Critical patent/CN112506615A/zh
Application granted granted Critical
Publication of CN112506615B publication Critical patent/CN112506615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种JavaWeb应用部署方法,该方法包括以下步骤:获得待部署的JavaWeb应用的应用软件包;构建应用软件包的应用软件包镜像;利用应用软件包镜像,启动应用软件包容器,应用软件包容器中包含目标目录,目标目录中仅包含应用软件包;利用纯净的应用服务器镜像,启动应用服务器容器,应用服务器容器中包含目标目录;将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。应用本申请所提供的技术方案,应用软件包镜像和应用服务器镜像是独立的,方便镜像的维护和更新,可以提高部署效率。本申请还公开了一种JavaWeb应用部署装置、设备及存储介质,具有相应技术效果。

Description

JavaWeb应用部署方法、装置、设备及存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种JavaWeb应用部署方法、装置、设备及存储介质。
背景技术
JavaWeb应用的部署一般是将应用软件包如war包放入web应用服务器中,然后启动web应用服务器。假如使用Tomcat作为web应用服务器,那么就是将war包放入Tomcat的webapps目录下,然后启动Tomcat,这样JavaWeb应用就可以对外提供服务了。
如果要使用Docker容器方式部署JavaWeb应用,首先需要考虑如何制作镜像,一种方法是:以Tomcat镜像作为基础镜像,将war包拷贝进Tomcat镜像的webapps目录下,然后使用docker build命令制作出一个新的镜像,这个镜像中包含了Tomcat软件的所有文件和war包,只要使用这个镜像启动一个Docker容器,这个容器就能够对外提供JavaWeb服务。
这种方法是一种比较直接、简单和容易理解的方法。但是这种方法却存在如下问题:在需要升级Tomcat版本时,例如从Tomcat7升级到Tomcat8,必须按照以上方法重新制作一遍镜像。但是对于一个项目组、软件研发部门、软件公司来说,会有很多个JavaWeb应用,这样就需要按照上述方法重新制作很多遍镜像,使得部署效率较低。
发明内容
本申请的目的是提供一种JavaWeb应用部署方法、装置、设备及存储介质,以提高部署效率。
为解决上述技术问题,本申请提供如下技术方案:
一种JavaWeb应用部署方法,包括:
获得待部署的JavaWeb应用的应用软件包;
构建所述应用软件包的应用软件包镜像;
利用所述应用软件包镜像,启动应用软件包容器,所述应用软件包容器中包含目标目录,所述目标目录中仅包含所述应用软件包;
利用纯净的应用服务器镜像,启动应用服务器容器,所述应用服务器容器中包含所述目标目录;
将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上。
在本申请的一种具体实施方式中,所述构建所述应用软件包的应用软件包镜像,包括:
获得操作系统基础镜像;
将所述应用软件包拷贝至所述操作系统基础镜像的设定目录下;
创建所述目标目录;
在配置文件中添加迁移命令,所述迁移命令定义为:在利用镜像启动容器时,自动将所述操作系统基础镜像中的所述设定目录下的应用软件包迁移至所述目标目录;
基于所述配置文件,调用镜像构建命令构建所述应用软件包的应用软件包镜像。
在本申请的一种具体实施方式中,所述利用所述应用软件包镜像,启动应用软件包容器,包括:
利用所述应用软件包镜像,调用容器启动命令启动应用软件包容器。
在本申请的一种具体实施方式中,还包括:
在调用容器启动命令启动应用软件包容器时,将所述目标目录定义为容器的数据卷。
在本申请的一种具体实施方式中,所述将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上,包括:
利用--volumes-from参数,将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上。
在本申请的一种具体实施方式中,还包括:
如果所述应用服务器镜像有更新,则利用更新后的所述应用服务器镜像,启动所述应用服务器容器;
重复执行所述将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上的步骤。
在本申请的一种具体实施方式中,还包括:
如果所述应用软件包有更新,则重新构建所述应用软件包的应用软件包镜像;
利用更新后的所述应用软件包镜像,启动所述应用软件包容器;
重启所述应用服务器容器;
重复执行所述将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上的步骤。
一种JavaWeb应用部署装置,包括:
应用软件包获得模块,用于获得待部署的JavaWeb应用的应用软件包;
应用软件包镜像构建模块,用于构建所述应用软件包的应用软件包镜像;
应用软件包容器启动模块,用于利用所述应用软件包镜像,启动应用软件包容器,所述应用软件包容器中包含目标目录,所述目标目录中仅包含所述应用软件包;
应用服务器容器启动模块,用于利用纯净的应用服务器镜像,启动应用服务器容器,所述应用服务器容器中包含所述目标目录;
目标目录挂载模块,用于将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上。
一种JavaWeb应用部署设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述JavaWeb应用部署方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述JavaWeb应用部署方法的步骤。
应用本申请实施例所提供的技术方案,获得待部署的JavaWeb应用的应用软件包后,构建该应用软件包的应用软件包镜像,利用应用软件包镜像,启动应用软件包容器,该应用软件包容器中包含目标目录,目标目录中仅包含应用软件包,然后利用纯净的应用服务器镜像,启动应用服务器容器,启动的应用服务器容器中也包含该目标目录,将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。应用软件包镜像和应用服务器镜像是独立的,方便镜像的维护和更新,可以提高部署效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种JavaWeb应用部署方法的实施流程图;
图2为本申请实施例中一种JavaWeb应用部署装置的结构示意图;
图3为本申请实施例中一种JavaWeb应用部署设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,为本申请实施例所提供的一种JavaWeb应用部署方法的实施流程图,该方法可以包括以下步骤:
S110:获得待部署的JavaWeb应用的应用软件包。
当前待部署的任意一个JavaWeb应用都可以按照本申请实施例所提供的技术方案进行部署,以对外提供服务。每个待部署的JavaWeb应用具有相应的应用软件包。如将待部署的JavaWeb应用的相关文件打包为war包。
获得待部署的JavaWeb应用的应用软件包后,可以继续执行步骤S120的操作。
S120:构建应用软件包的应用软件包镜像。
在获得待部署的JavaWeb应用的应用软件包后,可以构建该应用软件包的应用软件包镜像。
在本申请的一种具体实施方式中,该步骤可以包括以下步骤:
步骤一:获得操作系统基础镜像;
步骤二:将应用软件包拷贝至操作系统基础镜像的设定目录下;
步骤三:创建目标目录;
步骤四:在配置文件中添加迁移命令,迁移命令定义为:在利用镜像启动容器时,自动将操作系统基础镜像中的设定目录下的应用软件包迁移至目标目录;
步骤五:基于配置文件,调用镜像构建命令构建应用软件包的应用软件包镜像。
为便于描述,将上述几个步骤结合起来进行说明。
在本申请实施例中,在获得待部署的JavaWeb应用的应用软件包后,可进一步获得操作系统基础镜像。具体的,可以以官方的alpine镜像作为操作系统基础镜像。因为alpine镜像的体积较小,大概只有5MB左右,可以有效减小所要制作的镜像的体积。
获得操作系统基础镜像后,可以将应用软件包拷贝至操作系统基础镜像的设定目录下,该设定目录可以为任意目录。如应用软件包为war包,操作系统基础镜像为alpine基础镜像,则可以将war包拷贝进alpine基础镜像中的任意目录下。然后创建目标目录。目标目录具体可以是/usr/local/tomcat/webapps目录。再在配置文件中添加迁移命令。迁移命令可以定义为:在利用镜像启动容器时,自动将操作系统基础镜像中的设定目录下的应用软件包迁移至目标目录。具体的,可以通过Dockerfile的CMD命令定义:通过本镜像启动一个容器时,自动将操作系统基础镜像设定目录下的war包迁移至/usr/local/tomcat/webapps目录下。最后再基于配置文件,调用镜像构建命令构建应用软件包的应用软件包镜像。镜像构建命令具体可以是docker build命令。即调用docker build命令即可完成镜像的制作。这个镜像的体积约为:5MB+war包的体积。
S130:利用应用软件包镜像,启动应用软件包容器。
应用软件包容器中包含目标目录,目标目录中仅包含应用软件包。
获得待部署的JavaWeb应用的应用软件包,并构建应用软件包的应用软件包镜像后,可以利用应用软件包镜像,启动应用软件包容器。启动的应用软件包容器中包含目标目录,目标目录中仅包含应用软件包。
在本申请的一种具体实施方式中,可以利用应用软件包镜像,调用容器启动命令启动应用软件包容器。容器启动命令具体可以是docker run命令。即利用docker run命令启动一个仅包含war包的容器,该容器中将会有一个/usr/local/tomcat/webapps/目录,该目录下将会有war包,也就是待部署的JavaWeb应用。
在本申请的另一种具体实施方式中,在调用容器启动命令启动应用软件包容器时,将目标目录定义为容器的数据卷。具体的,可以通过docker run命令启动应用软件包容器时,可以使用-v参数将/usr/local/tomcat/webapps/目录定义为Docker的数据卷Volume。
S140:利用纯净的应用服务器镜像,启动应用服务器容器。
应用服务器容器中包含目标目录。
在本申请实施例中,可以确定一个纯净的应用服务器镜像,利用纯净的应用服务器镜像,可以启动应用服务器容器。如将Docker官方纯净的Tomcat镜像确定为应用服务器镜像,使用Tomcat镜像启动一个Tomcat容器。启动的应用服务器容器中包含目标目录,即/usr/local/tomcat/webapps/目录。
S150:将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。
启动的应用软件包容器和应用服务器容器都包含目标目录,可以将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。具体的,可以利用--volumes-from参数,将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。
以应用服务器镜像为Tomcat镜像为例,Tomcat官方镜像中自带/usr/local/tomcat/webapps/目录,但是目录是空的,不包含任何JavaWeb应用的war包。在使用dockerrun命令启动Tomcat容器时,可以使用--volumes-from参数,将应用软件包容器,即war容器中的/usr/local/tomcat/webapps/目录动态地挂载到Tomcat容器的/usr/local/tomcat/webapps/目录上。由于war容器中此目录下已经含有了待部署的JavaWeb应用的war包,所以经过此次动态挂载后,Tomcat容器也就具有了该war包。这样,JavaWeb应用就能够在Tomcat中运行起来了。
在本申请实施例中,应用服务器镜像和应用软件包镜像都为独立的镜像,方便镜像的维护。
在本申请的一个实施例中,如果应用服务器镜像有更新,则利用更新后的应用服务器镜像,启动应用服务器容器,重复执行将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上的步骤。
在实际应用中,可能会涉及到应用服务器镜像的更新,如将Tomcat7升级到Tomcat8。在应用服务器镜像有更新的情况下,因为应用服务器镜像和应用软件包镜像都是独立的镜像,所以不需要对应用软件包镜像进行更新,可以利用更新后的应用服务器镜像,启动应用服务器容器,然后将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。
在本申请的另一个实施例中,如果应用软件包有更新,则重新构建应用软件包的应用软件包镜像;利用更新后的应用软件包镜像,启动应用软件包容器;重启应用服务器容器;重复执行将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上的步骤。
在实际应用中,还可能会涉及到应用软件包的更新。在应用软件包有更新时,可以重新构建应用软件包的应用软件包镜像,利用更新后的应用软件包镜像,启动应用软件包容器。同样,因为应用软件包镜像和应用服务器镜像为独立的,而且各个应用软件包镜像也是相互独立的,所以,不需要对其他应用软件包镜像和应用服务器镜像进行更新。只需要重启应用服务器容器,然后将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。
本申请实施例是在有一个待部署的JavaWeb应用的基础上进行的说明。如果存在多个待部署的JavaWeb应用,则每个待部署的JavaWeb应用都可以应用本申请实施例所提供的技术方案进行部署,镜像体积较小,部署效率较高。
以应用服务器镜像为Tomcat镜像,应用软件包镜像为war包镜像为例,DockerHub官方最小的Tomcat镜像大概是150MB,假设一个war包的大小是10MB,按照背景技术中提到的方法所制作的镜像大小差不多就是160MB。如果有10个这样的JavaWeb应用的话,就是160*10=1600MB。因为每个镜像中都有一个完全相同的Tomcat软件。而在本申请实施例中,假如有10个war包,每个war包都是10MB,全部镜像的总体积为:(5+10)*10+150=300MB,这远远小于之前计算的1600MB,而且随着war包数量增多,效果更加明显。
而且,本申请实施例并没有将所有的JavaWeb应用的war包都放入一个Tomcat的webapps目录下,制作一个大而全的镜像,可以避免所有的JavaWeb应用要么同时启动,要么同时关闭,可以较好地符合业务需求,同时在有任何一个war包有更新时,不需要全部重做镜像,可以避免镜像的频繁制作,提高部署效率。
也就是说,本申请实施例基于Sidecar设计模式,并不把war包放进Tomcat的webapps目录下,而是将war包单独制作一个镜像,这个镜像中只有一个war包,没有任何其他软件。Tomcat镜像也是一个干干净净的镜像,里面只有Tomcat软件自带的目录和文件,不包含任何的war包。首先使用仅包含War包的镜像启动一个容器,那么这个容器中就仅含有该war包。然后,再使用官方、纯净的Tomcat镜像启动一个容器,只不过在启动这个Tomcat容器时,通过--volumes-from参数,将war容器中的war包动态挂载进Tomcat容器,这样JavaWeb应用就在Tomcat中运行起来了。
就好比Tomcat容器是一辆带斗的摩托车,负责行驶,而war容器是一架机枪,负责射击,将机枪放进了行驶中的车斗中,然后两者就可以相互合作,达到边行驶边射击的目的。除了能够实现在行进中射击之外,如果替换上其他的war包,还能实现载货、拉客的功能,而摩托车还是那一辆摩托车,只是车斗里放了不同的东西。这也就是Sidecar设计模式。
本申请实施例优化了Docker镜像的制作与使用方式,从而缩小了全部镜像的总体积并且利于镜像的维护。
应用本申请实施例所提供的方法,获得待部署的JavaWeb应用的应用软件包后,构建该应用软件包的应用软件包镜像,利用应用软件包镜像,启动应用软件包容器,该应用软件包容器中包含目标目录,目标目录中仅包含应用软件包,然后利用纯净的应用服务器镜像,启动应用服务器容器,启动的应用服务器容器中也包含该目标目录,将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。应用软件包镜像和应用服务器镜像是独立的,方便镜像的维护和更新,可以提高部署效率。
相应于上面的方法实施例,本申请实施例还提供了一种JavaWeb应用部署装置,下文描述的JavaWeb应用部署装置与上文描述的JavaWeb应用部署方法可相互对应参照。
参见图2所示,该装置可以包括以下模块:
应用软件包获得模块210,用于获得待部署的JavaWeb应用的应用软件包;
应用软件包镜像构建模块220,用于构建应用软件包的应用软件包镜像;
应用软件包容器启动模块230,用于利用应用软件包镜像,启动应用软件包容器,应用软件包容器中包含目标目录,目标目录中仅包含应用软件包;
应用服务器容器启动模块240,用于利用纯净的应用服务器镜像,启动应用服务器容器,应用服务器容器中包含目标目录;
目标目录挂载模块250,用于将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。
应用本申请实施例所提供的装置,获得待部署的JavaWeb应用的应用软件包后,构建该应用软件包的应用软件包镜像,利用应用软件包镜像,启动应用软件包容器,该应用软件包容器中包含目标目录,目标目录中仅包含应用软件包,然后利用纯净的应用服务器镜像,启动应用服务器容器,启动的应用服务器容器中也包含该目标目录,将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。应用软件包镜像和应用服务器镜像是独立的,方便镜像的维护和更新,可以提高部署效率。
在本申请的一种具体实施方式中,应用软件包镜像构建模块220,用于:
获得操作系统基础镜像;
将应用软件包拷贝至操作系统基础镜像的设定目录下;
创建目标目录;
在配置文件中添加迁移命令,迁移命令定义为:在利用镜像启动容器时,自动将操作系统基础镜像中的设定目录下的应用软件包迁移至目标目录;
基于配置文件,调用镜像构建命令构建应用软件包的应用软件包镜像。
在本申请的一种具体实施方式中,应用软件包容器启动模块230,用于:
利用应用软件包镜像,调用容器启动命令启动应用软件包容器。
在本申请的一种具体实施方式中,应用软件包容器启动模块230,还用于:
在调用容器启动命令启动应用软件包容器时,将目标目录定义为容器的数据卷。
在本申请的一种具体实施方式中,目标目录挂载模块250,用于:
利用--volumes-from参数,将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。
在本申请的一种具体实施方式中,还包括应用服务器镜像更新模块,用于:
如果应用服务器镜像有更新,则利用更新后的应用服务器镜像,启动应用服务器容器;
重复执行将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上的步骤。
在本申请的一种具体实施方式中,还包括应用软件包更新模块,用于:
如果应用软件包有更新,则重新构建应用软件包的应用软件包镜像;
利用更新后的应用软件包镜像,启动应用软件包容器;
重启应用服务器容器;
重复执行将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上的步骤。
相应于上面的方法实施例,本申请实施例还提供了一种JavaWeb应用部署设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述JavaWeb应用部署方法的步骤。
如图3所示,为JavaWeb应用部署设备的组成结构示意图,JavaWeb应用部署设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行JavaWeb应用部署方法的实施例中的操作。
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
获得待部署的JavaWeb应用的应用软件包;
构建应用软件包的应用软件包镜像;
利用应用软件包镜像,启动应用软件包容器,应用软件包容器中包含目标目录,目标目录中仅包含应用软件包;
利用纯净的应用服务器镜像,启动应用服务器容器,应用服务器容器中包含目标目录;
将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上。
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如镜像构建功能、容器启动功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如软件包数据、配置文件数据等。
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
当然,需要说明的是,图3所示的结构并不构成对本申请实施例中JavaWeb应用部署设备的限定,在实际应用中JavaWeb应用部署设备可以包括比图3所示的更多或更少的部件,或者组合某些部件。
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述JavaWeb应用部署方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (7)

1.一种JavaWeb应用部署方法,其特征在于,包括:
获得待部署的JavaWeb应用的应用软件包;
构建所述应用软件包的应用软件包镜像,包括:获得操作系统基础镜像,所述操作系统基础镜像为alpine镜像;将所述应用软件包拷贝至所述操作系统基础镜像的设定目录下;创建目标目录,所述目标目录具体是/usr/local/tomcat/webapps目录;在配置文件中添加迁移命令,所述迁移命令具体为Dockerfile的CMD命令,所述迁移命令定义为:在利用镜像启动容器时,自动将所述操作系统基础镜像中的所述设定目录下的应用软件包迁移至所述目标目录;基于所述配置文件,调用镜像构建命令构建所述应用软件包的应用软件包镜像;
利用所述应用软件包镜像,启动应用软件包容器,所述应用软件包容器中包含所述目标目录,所述目标目录中仅包含所述应用软件包;
利用纯净的应用服务器镜像,启动应用服务器容器,所述应用服务器容器中包含所述目标目录,所述应用服务器镜像和所述应用软件包镜像为独立的镜像,所述应用服务器镜像具体为Tomcat镜像;
将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上;
如果所述应用服务器镜像有更新,则利用更新后的所述应用服务器镜像,启动所述应用服务器容器;重复执行所述将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上的步骤;
如果所述应用软件包有更新,则重新构建所述应用软件包的应用软件包镜像;利用更新后的所述应用软件包镜像,启动所述应用软件包容器;重启所述应用服务器容器;重复执行所述将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上的步骤。
2.根据权利要求1所述的方法,其特征在于,所述利用所述应用软件包镜像,启动应用软件包容器,包括:
利用所述应用软件包镜像,调用容器启动命令启动应用软件包容器。
3.根据权利要求2所述的方法,其特征在于,还包括:
在调用容器启动命令启动应用软件包容器时,将所述目标目录定义为容器的数据卷。
4.根据权利要求1所述的方法,其特征在于,所述将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上,包括:
利用--volumes-from参数,将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上。
5.一种JavaWeb应用部署装置,其特征在于,包括:
应用软件包获得模块,用于获得待部署的JavaWeb应用的应用软件包;
应用软件包镜像构建模块,用于构建所述应用软件包的应用软件包镜像;
应用软件包容器启动模块,用于利用所述应用软件包镜像,启动应用软件包容器,所述应用软件包容器中包含目标目录,所述目标目录中仅包含所述应用软件包;
应用服务器容器启动模块,用于利用纯净的应用服务器镜像,启动应用服务器容器,所述应用服务器容器中包含所述目标目录;所述应用服务器镜像和所述应用软件包镜像为独立的镜像;
目标目录挂载模块,用于将所述应用软件包容器的所述目标目录动态挂载到所述应用服务器容器的所述目标目录上;
所述应用软件包镜像构建模块,具体用于获得操作系统基础镜像,所述操作系统基础镜像为alpine镜像;将所述应用软件包拷贝至所述操作系统基础镜像的设定目录下;创建所述目标目录,所述目标目录具体是/usr/local/tomcat/webapps目录;在配置文件中添加迁移命令,所述迁移命令具体为Dockerfile的CMD命令,所述迁移命令定义为:在利用镜像启动容器时,自动将所述操作系统基础镜像中的所述设定目录下的应用软件包迁移至所述目标目录;基于所述配置文件,调用镜像构建命令构建所述应用软件包的应用软件包镜像;
应用服务器镜像更新模块,用于如果应用服务器镜像有更新,则利用更新后的应用服务器镜像,启动应用服务器容器;重复执行将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上的步骤;
所述应用服务器镜像更新模块,还用于如果应用软件包有更新,则重新构建应用软件包的应用软件包镜像;利用更新后的应用软件包镜像,启动应用软件包容器;重启应用服务器容器;重复执行将应用软件包容器的目标目录动态挂载到应用服务器容器的目标目录上的步骤。
6.一种JavaWeb应用部署设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述JavaWeb应用部署方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述JavaWeb应用部署方法的步骤。
CN202011445544.0A 2020-12-11 2020-12-11 JavaWeb应用部署方法、装置、设备及存储介质 Active CN112506615B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011445544.0A CN112506615B (zh) 2020-12-11 2020-12-11 JavaWeb应用部署方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011445544.0A CN112506615B (zh) 2020-12-11 2020-12-11 JavaWeb应用部署方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112506615A CN112506615A (zh) 2021-03-16
CN112506615B true CN112506615B (zh) 2023-11-03

Family

ID=74971337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011445544.0A Active CN112506615B (zh) 2020-12-11 2020-12-11 JavaWeb应用部署方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112506615B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115357258B (zh) * 2022-10-24 2022-12-27 北京闪马智建科技有限公司 应用的部署方法、装置、存储介质及电子装置
CN117555563A (zh) * 2023-11-28 2024-02-13 广州鼎甲计算机科技有限公司 平台镜像的构建方法、装置、计算机设备和储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109391664A (zh) * 2017-08-11 2019-02-26 中国电信股份有限公司 用于多集群容器部署的系统和方法
CN110109649A (zh) * 2018-02-01 2019-08-09 中国电信股份有限公司 针对Web服务的容器控制方法、装置和容器系统
CN111399855A (zh) * 2020-03-09 2020-07-10 山东汇贸电子口岸有限公司 一种基于容器技术的自动化应用实例发布方法
CN111459614A (zh) * 2020-03-30 2020-07-28 中科边缘智慧信息科技(苏州)有限公司 服务轻量级容器化封装迁移方法
CN111966463A (zh) * 2020-08-18 2020-11-20 江苏安超云软件有限公司 一种容器镜像的构建方法、装置、存储介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108415795B (zh) * 2018-02-12 2019-04-05 人和未来生物科技(长沙)有限公司 一种容器Dockerfile、容器镜像快速生成方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109391664A (zh) * 2017-08-11 2019-02-26 中国电信股份有限公司 用于多集群容器部署的系统和方法
CN110109649A (zh) * 2018-02-01 2019-08-09 中国电信股份有限公司 针对Web服务的容器控制方法、装置和容器系统
CN111399855A (zh) * 2020-03-09 2020-07-10 山东汇贸电子口岸有限公司 一种基于容器技术的自动化应用实例发布方法
CN111459614A (zh) * 2020-03-30 2020-07-28 中科边缘智慧信息科技(苏州)有限公司 服务轻量级容器化封装迁移方法
CN111966463A (zh) * 2020-08-18 2020-11-20 江苏安超云软件有限公司 一种容器镜像的构建方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
叶翼安.一种基于Docker构建化集成交付的软件仓库模式设计与实现.《中国优秀硕士学位论文全文数据库 信息科技辑》.2015, *

Also Published As

Publication number Publication date
CN112506615A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN112506615B (zh) JavaWeb应用部署方法、装置、设备及存储介质
US7814474B2 (en) Updatable mobile handset based on Linux with compression and decompression techniques
CN113296792B (zh) 存储方法、装置、设备、存储介质和系统
CN111026414B (zh) 一种基于kubernetes的HDP平台部署方法
US20080034346A1 (en) Preparation for Software on Demand System
CN109614167B (zh) 一种管理插件的方法和系统
CN104750528A (zh) 一种Android程序中的组件管理方法和装置
CN101625647A (zh) 加快嵌入式软件系统启动速度的方法
CN110727503B (zh) 容器部署方法、装置、设备、存储介质及容器部署系统
CN110753119A (zh) 一种基于K8s集群的应用包部署系统
CN110018897A (zh) 数据处理方法、装置及计算设备
CN113032126A (zh) 一种高并发云工作流调度引擎跨集群通信系统及方法
CN112468545A (zh) 一种云主机创建方法、装置、系统、设备及可读存储介质
CN103593485A (zh) 实现数据库实时操作的方法和设备
AU2005203424A1 (en) Process and system for real-time relocation of objects during garbage collection
CN114465653A (zh) 一种面向卫星集群的在轨边缘计算方法
CN109710297B (zh) 一种设备整体或分模块进行升级和回退方法
CN112883006B (zh) 一种企业级容器镜像加速方法、装置、电子设备和存储介质
CN107577506A (zh) 一种数据预加载的方法和系统
US20030217196A1 (en) Software on demand system
WO2002075541A9 (en) Method and apparatus for providing application specific strategies to a java platform including start and stop policies
CN107092469A (zh) 一种软件升级方法、装置及系统
CN113612561B (zh) 一种基于zynq架构的综测仪基带板启动方法及系统
CN105677393B (zh) 一种软件包处理方法、装置及系统
CN115426361A (zh) 分布式客户端打包方法、装置、主服务器及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant