本发明涉及计算机技术领域,更具体的说,涉及一种应用程序的部署方法和装置。
背景技术:
云计算环境下,软件技术以及软件架构发生了翻天覆地的变化,并且随着微服务架构的不断发展,应用程序的数量越来越多。把应用程序部署在Docker容器中,能够实现应用程序快速部署。应用程序的部署过程即为创建Docker容器并保存Docker容器中存储的中间件的配置文件的端口与宿主机的端口的映射关系的过程。
在创建Docker容器的过程中,需要生成中间件的配置文件,现有技术中,在生成中间件的配置文件时,是人工将数据库信息以及Java命名和目录接口JNDI名称填写到中间件的配置模板文件中,得到中间件的配置文件,由于生成中间件的配置文件时,需要人工参与,会提高人工成本。
因此,亟需一种在应用程序的部署过程中,减少人工成本的方法。
技术实现要素:
有鉴于此,本发明提供一种应用程序的部署方法和装置,以解决在应用程序的部署过程中,人工成本较高的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种应用程序的部署方法,包括:
将war包存储到本地的预设位置;
获取目标数据库信息、目标Java命名和目录接口JNDI名称以及基础镜像;
根据所述目标数据库信息、所述目标JNDI名称以及所述基础镜像,采用Java模板引擎Velocity技术生成目标中间件的配置文件;
根据所述基础镜像、所述目标中间件的配置文件和存储到所述本地的预设位置的所述war包,创建多个Docker容器;
将每个所述Docker容器中存储的所述目标中间件的配置文件的端口与宿主机的映射端口的映射关系保存到预设文件中。
优选地,根据所述目标数据库信息、所述目标JNDI名称以及所述基础镜像,采用Velocity技术生成目标中间件的配置文件,包括:
获取所述基础镜像的中间件的配置文件;
采用所述Velocity技术,将所述中间件的配置文件中的数据库信息修改为所述目标数据库信息,将所述中间件的配置文件中的JNDI名称修改为所述目标JNDI名称,得到所述目标中间件的配置文件。
优选地,根据所述基础镜像、所述目标中间件的配置文件和存储到所述本地的预设位置的所述war包,创建多个Docker容器,包括:
根据所述基础镜像、所述目标中间件的配置文件和存储到所述本地的预设位置的所述war包的存储位置,采用所述Velocity技术,修改所述基础镜像的镜像描述文件中的内容,得到目标镜像描述文件;
根据所述目标镜像描述文件,采用镜像构建技术,生成镜像;
根据所述镜像,采用容器构建技术,生成多个所述Docker容器。
优选地,根据所述目标镜像描述文件,采用镜像构建技术,生成镜像后,还包括:
将所述镜像保存到镜像仓库中。
优选地,将每个所述Docker容器中存储的所述目标中间件的配置文件的端口与宿主机的映射端口的映射关系保存到预设文件中,包括:
将每个所述Docker容器中存储的所述目标中间件的配置文件的端口与宿主机的多个映射端口中的一个所述映射端口建立映射关系;
将每个所述Docker容器中存储的所述目标中间件的配置文件的端口与宿主机的多个映射端口中的一个所述映射端口建立的映射关系保存到所述预设文件中;
其中,每个所述Docker容器中存储的所述目标中间件的配置文件的端口对应的所述宿主机的所述映射端口不同。
一种应用程序的部署装置,包括:
存储单元,用于将war包存储到本地的预设位置;
第一获取单元,用于获取目标数据库信息、目标JNDI名称以及基础镜像;
第一生成单元,用于根据所述目标数据库信息、所述目标JNDI名称以及所述基础镜像,采用Java模板引擎Velocity技术生成目标中间件的配置文件;
创建单元,用于根据所述基础镜像、所述目标中间件的配置文件和存储到所述本地的预设位置的所述war包,创建多个Docker容器;
第一保存单元,用于将每个所述Docker容器中存储的所述目标中间件的配置文件的端口与宿主机的映射端口的映射关系保存到预设文件中。
优选地,所述第一生成单元包括:
第二获取单元,用于获取所述基础镜像的中间件的配置文件;
第一修改单元,用于采用所述Velocity技术,将所述中间件的配置文件中的数据库信息修改为所述目标数据库信息,将所述中间件的配置文件中的JNDI名称修改为所述目标JNDI名称,得到所述目标中间件的配置文件。
优选地,所述创建单元包括:
第二修改单元,用于根据所述基础镜像、所述目标中间件的配置文件和存储到所述本地的预设位置的所述war包的存储位置,采用所述Velocity技术,修改所述基础镜像的镜像描述文件中的内容,得到目标镜像描述文件;
第二生成单元,用于根据所述目标镜像描述文件,采用镜像构建技术,生成镜像;
第三生成单元,用于根据所述镜像,采用容器构建技术,生成多个所述Docker容器。
优选地,还包括:
第二保存单元,用于所述第二生成单元根据所述目标镜像描述文件,采用镜像构建技术,生成镜像后,将所述镜像保存到镜像仓库中。
优选地,所述第一保存单元包括:
建立映射单元,用于将每个所述Docker容器中存储的所述目标中间件的配置文件的端口与宿主机的多个映射端口中的一个所述映射端口建立映射关系;
第三保存单元,用于将每个所述Docker容器中存储的所述目标中间件的配置文件的端口与宿主机的多个映射端口中的一个所述映射端口建立的映射关系保存到所述预设文件中;
其中,每个所述Docker容器中存储的所述目标中间件的配置文件的端口对应的所述宿主机的所述映射端口不同。
相较于现有技术,本发明具有以下有益效果:
本发明提供了一种应用程序的部署方法和装置,目标中间件的配置文件是根据所述目标数据库信息、所述目标JNDI名称以及所述基础镜像,采用Velocity技术生成,不需要人工参与,解决在应用程序的部署过程中,人工成本较高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种应用程序的部署方法的方法流程图;
图2为本发明提供的另一种应用程序的部署方法的方法流程图;
图3为本发明提供的一种应用程序的部署装置的结构示意图;
图4为本发明提供的另一种应用程序的部署装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种应用程序的部署方法,参照图1,包括:
S101、将war包存储到本地的预设位置;
其中,war包即为应用程序,将war包存储到本地的预设位置,能够保证在后期调用war包时,方便快捷。
S102、获取目标数据库信息、目标JNDI名称以及基础镜像;
其中,目标数据库信息、目标JNDI名称以及基础镜像是人工输入到计算机中的。目标数据库信息包括目标数据库的IP地址、登录目标数据库的账号和密码等。JNDI是指一种标准的计算机编程语言Java命名系统接口。基础镜像是指汤姆猫tomcat镜像或者是Java应用服务器weblogic镜像。
S103、根据目标数据库信息、目标JNDI名称以及基础镜像,采用Java模板引擎Velocity技术生成目标中间件的配置文件;
具体的,根据目标数据库信息、目标JNDI名称以及基础镜像,采用Velocity技术生成目标中间件的配置文件,包括:
获取基础镜像的中间件的配置文件;
采用Velocity技术,将中间件的配置文件中的数据库信息修改为目标数据库信息,将中间件的配置文件中的JNDI名称修改为目标JNDI名称,得到目标中间件的配置文件。
具体的,基础镜像也为一个镜像,该基础镜像为一个压缩包文件,基础镜像中包含有中间件的配置文件,其中,当基础镜像为tomcat镜像时,中间件为tomcat镜像的中间件,当基础镜像为weblogic镜像时,中间件为weblogic镜像的中间件。
当需要创建新的镜像时,就需要生成与新的镜像对应的中间件文件,此时,采用Velocity技术,将中间件的配置文件中的数据库信息修改为目标数据库信息,将中间件的配置文件中的JNDI名称修改为目标JNDI名称,得到目标中间件的配置文件。
其中,目标中间件的配置文件即为需要创建的新的镜像的中间件的配置文件。
S104、根据基础镜像、目标中间件的配置文件和存储到本地的预设位置的war包,创建多个Docker容器;
其中,容器为应用程序提供了隔离的运行空间。每个容器内都包含一个独享的完整用户环境空间,并且一个容器内的变动不会影响其他容器的运行环境。
S105、将每个Docker容器中存储的目标中间件的配置文件的端口与宿主机的映射端口的映射关系保存到预设文件中。
其中,预设文件包括web服务器Nginx负载均衡的配置文件。
本实施例提供了一种应用程序的部署方法,目标中间件的配置文件是根据目标数据库信息、目标JNDI名称以及基础镜像,采用Velocity技术生成,不需要人工参与,解决在应用程序的部署过程中,人工成本较高的问题。
可选的,本发明的另一实施例中,步骤S104包括:
S204、根据基础镜像、目标中间件的配置文件和存储到本地的预设位置的war包的存储位置,采用Velocity技术,修改基础镜像的镜像描述文件中的内容,得到目标镜像描述文件;
具体的,生成镜像需要有镜像描述文件,生成新的镜像的镜像描述文件是通过修改新的镜像的基础镜像的镜像描述文件得到。其中,新的镜像的镜像描述文件为目标镜像描述文件。
其中,基础镜像的镜像描述文件中包含有基础子镜像、以及指定的基础镜像对应的war在基础镜像中的存储位置。
由于需要生成的目标镜像描述文件是通过修改基础镜像的镜像描述文件得到的,因此,采用Velocity技术,将基础镜像的镜像描述文件中的基础子镜像修改为基础镜像,将基础镜像的镜像描述文件修改成目标镜像描述文件,将基础镜像对应的war在基础镜像中的存储位置替换为新的镜像对应的war包在新的镜像中的存储位置,得到目标镜像描述文件;
S205、根据目标镜像描述文件,采用镜像构建技术,生成镜像;
具体的,镜像构建技术是指docker构建docker build命令,执行docker build命令,就能够根据目标镜像描述文件,生成镜像。其中,在执行docker build命令时,需要在docker build命令中添加需要运行的目标镜像描述文件。
S207、根据镜像,采用容器构建技术,生成多个Docker容器。
其中,容器构建技术是指docker运行docker run命令,执行docker run命令,就能够根据镜像,生成多个Docker容器。其中,在执行docker run命令时,需要在docker run命令中添加需要运行的镜像。
需要说明的是,多个Docker容器为多个相同的Docker容器。
可选的,本发明的另一实施例中,步骤S205之后,还包括:
S206、将镜像保存到镜像仓库中。
具体的,镜像仓库是为了存储镜像,可以上传和下载镜像。镜像仓库中的镜像可以作为以后生成的新的镜像的基础镜像。
可选的,本发明的另一实施例中,步骤S105包括:
S208、将每个Docker容器中存储的目标中间件的配置文件的端口与宿主机的多个映射端口中的一个映射端口建立映射关系;
S209、将每个Docker容器中存储的目标中间件的配置文件的端口与宿主机的多个映射端口中的一个映射端口建立的映射关系保存到预设文件中;
其中,每个Docker容器中存储的目标中间件的配置文件的端口对应的宿主机的映射端口不同。
具体的,为了技术人员能够直接操作Docker容器中存储的目标中间件的配置文件,此时需要将Docker容器中存储的目标中间件的配置文件的端口与宿主机的映射端口建立映射关系,并将映射关系保存到预设文件中。进而技术人员就能够通过目标中间件的配置文件的端口修改目标中间件的配置文件。
本实施例中,采用Velocity技术,修改基础镜像的镜像描述文件,得到目标镜像描述文件,进而能够生成镜像以及生成多个Docker容器。
可选的,本发明的另一实施例中提供了一种应用程序的部署装置,参照图3,包括:
存储单元101,用于将war包存储到本地的预设位置;
第一获取单元102,用于获取目标数据库信息、目标JNDI名称以及基础镜像;
第一生成单元103,用于根据目标数据库信息、目标JNDI名称以及基础镜像,采用Java模板引擎Velocity技术生成目标中间件的配置文件;
创建单元104,用于根据基础镜像、目标中间件的配置文件和存储到本地的预设位置的war包,创建多个Docker容器;
第一保存单元105,用于将每个Docker容器中存储的目标中间件的配置文件的端口与宿主机的映射端口的映射关系保存到预设文件中。
可选的,本发明的另一实施例中,第一生成单元103包括:
第二获取单元,用于获取基础镜像的中间件的配置文件;
第一修改单元,用于采用Velocity技术,将中间件的配置文件中的数据库信息修改为目标数据库信息,将中间件的配置文件中的JNDI名称修改为目标JNDI名称,得到目标中间件的配置文件。
本实施例提供了一种应用程序的部署装置,目标中间件的配置文件是根据目标数据库信息、目标JNDI名称以及基础镜像,采用Velocity技术生成,不需要人工参与,解决在应用程序的部署过程中,人工成本较高的问题。
需要说明的是,本实施例中的各个单元的工作过程,请参照图1对应的实施例中的内容,在此不再赘述。
可选的,本发明的另一实施例中,创建单元104包括:
第二修改单元1041,用于根据基础镜像、目标中间件的配置文件和存储到本地的预设位置的war包的存储位置,采用Velocity技术,修改基础镜像的镜像描述文件中的内容,得到目标镜像描述文件;
第二生成单元1042,用于根据目标镜像描述文件,采用镜像构建技术,生成镜像;
第三生成单元1043,用于根据镜像,采用容器构建技术,生成多个Docker容器。
可选的,本发明的另一实施例中,还包括:
第二保存单元,用于第二生成单元1042根据目标镜像描述文件,采用镜像构建技术,生成镜像后,将镜像保存到镜像仓库中。
可选的,本发明的另一实施例中,第一保存单元105包括:
建立映射单元,用于第三生成单元1043根据镜像,采用容器构建技术,生成多个Docker容器后,将每个Docker容器中存储的目标中间件的配置文件的端口与宿主机的多个映射端口中的一个映射端口建立映射关系;
第三保存单元,用于将每个Docker容器中存储的目标中间件的配置文件的端口与宿主机的多个映射端口中的一个映射端口建立的映射关系保存到预设文件中;
其中,每个Docker容器中存储的目标中间件的配置文件的端口对应的宿主机的映射端口不同。
本实施例中,采用Velocity技术,修改基础镜像的镜像描述文件,得到目标镜像描述文件,进而能够生成镜像以及生成多个Docker容器。
需要说明的是,本实施例中的各个单元的工作过程,请参照图2对应的实施例中的内容,在此不再赘述。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。