CN117931214A - 离线环境下的应用部署方法及装置、电子设备和存储介质 - Google Patents
离线环境下的应用部署方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117931214A CN117931214A CN202311714522.3A CN202311714522A CN117931214A CN 117931214 A CN117931214 A CN 117931214A CN 202311714522 A CN202311714522 A CN 202311714522A CN 117931214 A CN117931214 A CN 117931214A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- container
- file
- container mirror
- image file
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000003860 storage Methods 0.000 title claims abstract description 33
- 238000009434 installation Methods 0.000 claims abstract description 120
- 238000013515 script Methods 0.000 claims abstract description 46
- 238000004806 packaging method and process Methods 0.000 claims abstract description 34
- 238000013507 mapping Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000013508 migration Methods 0.000 claims description 4
- 230000005012 migration Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 10
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本公开涉及一种离线环境下的应用部署方法及装置、电子设备和存储介质,所述方法包括:获取源代码文件并对源代码文件进行编译得到可执行文件,源代码文件表示需要部署的应用程序的原始代码;根据目标服务器的环境配置信息对可执行文件进行镜像制作,得到第一容器镜像文件;对第一容器镜像文件进行打包处理得到可执行文件对应的第一容器镜像安装包;通过移动存储设备将第一容器镜像安装包移植到目标服务器,以使得所述目标服务器执行自动部署脚本将第一容器镜像安装包部署到目标服务器。本公开实施例利用应用程序的原始代码得到可移植的容器镜像安装包并移植到目标服务器,在离线环境下自动化的完成应用部署,并保证部署过程高效、高质量的完成。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种离线环境下的应用部署方法及装置、电子设备和存储介质。
背景技术
DevOps(开发运维一体化)通过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。当前,基于DevOps的自动化部署平台,是一个广泛用于持续构建的可视化全球广域网(World Wide Web,web)工具业的服务交付,就是各种项目的“自动化”编译、打包、分发部署。DevOps的核心在于连接开发与运维,使之可以高效的沟通协作以缩短软件研发周期,提升交付速度及质量。
在现有技术中,通过DevOps可以实现项目的自动化部署,软件供应商开发的软件提供给用户安装使用时,供应商可以直接通过网络连接到客户的运行环境进行远程部署。但是,当供应商和客户处于不同的网络,例如供应商处于公共网络,而客户处于内部网络,则供应商无法完成应用的部署和管理。因此,如何在离线环境对应用进行自动化的部署成为当前亟待解决的问题。
发明内容
有鉴于此,本公开提出了一种离线环境下的应用部署方法及装置、电子设备和存储介质,可以对应用程序的源代码文件进行编译、对可执行文件进行镜像制作打包、对容器镜像安装包进行移植并自动部署,实现了在离线环境下对应用程序的自动化部署。
根据本公开的一方面,提供了一种离线环境下的应用部署方法,所述方法包括:获取源代码文件并对所述源代码文件进行编译得到可执行文件,所述源代码文件表示需要部署的应用程序的原始代码,所述可执行文件表示计算机直接执行的指令和数据;根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,得到第一容器镜像文件,所述目标服务器为离线环境服务器,所述离线环境表示所述目标服务器为内外网隔离的服务器;对所述第一容器镜像文件进行打包处理得到所述可执行文件对应的第一容器镜像安装包;通过移动存储设备将所述第一容器镜像安装包移植到所述目标服务器,以使得所述目标服务器执行自动部署脚本将所述第一容器镜像安装包部署到所述目标服务器。
在一种可能的实现方式中,所述根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,包括:根据所述目标服务器的环境配置信息选择并获取基础容器镜像文件,所述基础容器镜像文件的环境配置信息和所述目标服务器的环境配置信息相同;指定所述基础容器镜像文件中的第一工作目录,删除当前所述第一工作目录下的文件;将所述可执行文件拷贝到所述第一工作目录中得到包含所述可执行文件的第一容器镜像文件。
在一种可能的实现方式中,所述根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,还包括:为所述第一容器镜像文件指定容器的端口,所述端口为容器需要映射到目标服务器的端口。
在一种可能的实现方式中,所述对所述第一容器镜像文件进行打包处理,包括:将所述第一容器镜像文件存放到容器镜像文件服务器中进行保存;在接收到对所述第一容器镜像文件进行打包处理的指令后,将所述第一容器镜像文件拉取,并利用自动打包脚本对所述第一容器镜像文件进行打包得到所述第一容器镜像安装包。
在一种可能的实现方式中,所述执行自动部署脚本将所述第一容器镜像安装包部署到所述目标服务器包括:查找目标服务器的容器镜像文件,选中第一容器镜像安装包并对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件;创建第二工作目录,将所述第一容器镜像文件拷贝到所述第二工作目录中;打开所述第一容器镜像文件中的可执行文件,完成对所述目标服务器的部署。
在一种可能的实现方式中,所述对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件包括:对所述第一容器镜像安装包进行解压得到所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息,所述配置信息用于指示所述第一容器镜像安装包的名称、端口及环境信息;对所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息利用数据卷机制进行备份;将所述第一容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的第一容器镜像文件。
在一种可能的实现方式中,所述方法还包括:导入对所述第一容器镜像安装包进行解压得到的数据库容器镜像安装包,对所述数据库容器镜像安装包进行解压得到数据库容器镜像文件和所述数据库容器镜像文件对应的配置信息;将所述数据库容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的数据库容器镜像文件。
根据本公开的一方面,提供了一种离线环境下的应用部署装置,所述装置包括:编译模块,用于获取源代码文件并对所述源代码文件进行编译得到可执行文件,所述源代码文件表示需要部署的应用程序的原始代码,所述可执行文件表示计算机直接执行的指令和数据;镜像制作模块,用于根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,得到第一容器镜像文件,所述目标服务器为离线环境服务器,所述离线环境表示所述目标服务器为内外网隔离的服务器;镜像打包模块,用于对所述第一容器镜像文件进行打包处理得到所述可执行文件对应的第一容器镜像安装包;移植模块,用于通过移动存储设备将所述第一容器镜像安装包移植到所述目标服务器,以使得所述目标服务器执行自动部署脚本将所述第一容器镜像安装包部署到所述目标服务器。
在一种可能的实现方式中,所述镜像制作模块还用于:根据所述目标服务器的环境配置信息选择并获取基础容器镜像文件,所述基础容器镜像文件的环境配置信息和所述目标服务器的环境配置信息相同;指定所述基础容器镜像文件中的第一工作目录,删除当前所述第一工作目录下的文件;将所述可执行文件拷贝到所述第一工作目录中得到包含所述可执行文件的第一容器镜像文件。
在一种可能的实现方式中,所述镜像制作模块还用于:为所述第一容器镜像文件指定容器的端口,所述端口为容器需要映射到目标服务器的端口。
在一种可能的实现方式中,所述镜像打包模块还用于:将所述第一容器镜像文件存放到容器镜像文件服务器中进行保存;在接收到对所述第一容器镜像文件进行打包处理的指令后,将所述第一容器镜像文件拉取,并利用自动打包脚本对所述第一容器镜像文件进行打包得到所述第一容器镜像安装包。
在一种可能的实现方式中,所述自动部署模块还用于:查找目标服务器的容器镜像文件,选中第一容器镜像安装包并对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件;创建第二工作目录,将所述第一容器镜像文件拷贝到所述第二工作目录中;打开所述第一容器镜像文件中的可执行文件,完成对所述目标服务器的部署。
在一种可能的实现方式中,所述对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件包括:对所述第一容器镜像安装包进行解压得到所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息,所述配置信息用于指示所述第一容器镜像安装包的名称、端口及环境信息;对所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息利用数据卷机制进行备份;将所述第一容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的第一容器镜像文件。
在一种可能的实现方式中,所述自动化部署模块还用于:导入对所述第一容器镜像安装包进行解压得到的数据库容器镜像安装包,对所述数据库容器镜像安装包进行解压得到数据库容器镜像文件和所述数据库容器镜像文件对应的配置信息;将所述数据库容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的数据库容器镜像文件。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,将需要部署的应用程序的原始代码作为源代码文件,并对源代码文件进行编译得到可执行文件,根据需要部署到的目标服务器的环境的配置信息对可执行文件进行镜像制作,得到容器镜像文件,对容器镜像文件打包处理得到可以移植的容器镜像安装包,并通过移动存储设备将得到的安装包移植到目标服务器,通过自动化部署脚本自动部署应用程序到目标服务器。通过这种方法,本公开可以在离线环境下自动化的完成应用部署,并保证部署过程高效、高质量的完成。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的离线环境下的应用部署方法的流程图。
图2示出根据本公开实施例的离线环境下的应用部署装置的结构示意图。
图3示出根据本公开实施例的一种电子设备1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
在传统行业,如政府、能源、工业、交通、医疗等行业,为了防止数据泄露和运行安全考虑,一般情况下网络会采用内外网隔离的策略,以防范不必要的风险,而网络隔离在软件交付过程中,对于外部软件开发厂商来说将会带来一系列的交付难题,例如:离线内网环境无法通过企业的自动化部署平台进行统一管理和自动部署;离线内网环境无法访问企业的制品库,基于容器的应用系统无法通过软件供应商制品库直接拉取容器镜像;手动方式部署容易误操作,效率低下,依赖实施人员的个人能力,有较多的不可控情况;因内网的特殊性,部署流程中包含较多的人为操作环节,安全风险较大。
为了解决上述技术问题,本公开实施例提出了一种离线环境下的应用部署方法,可以对应用程序的源代码文件进行编译、对可执行文件进行镜像制作打包、对容器镜像安装包进行移植并自动部署,实现了在离线环境下对应用程序的自动化部署。
图1示出根据本公开实施例的离线环境下的应用部署方法的流程图,该离线环境下的应用部署方法应用于应用部署装置,例如,应用部署装置可以由终端设备或服务器或其它处理设备执行,以对离线环境下的目标服务器进行应用程序的离线部署,其中目标服务器与公共网络(或外部网络)隔离。其中,终端设备可以为用户设备(UE,UserEquipment)、移动设备、蜂窝电话、无绳电话、个人数字处理(PDA,Personal DigitalAssistant)、手持设备、计算设备、车载设备、可穿戴设备等。服务器可以是下文中的本地服务器或云服务器等。在一些可能的实现方式中,该离线环境下的应用部署可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
在一个应用示例中,本申请实施例所运行的系统可包括内部网络中的目标服务器,以及外部网络中的上述应用部署装置(例如本地服务器)、远程镜像库、本地镜像库、容器镜像文件服务器等,内部网络和外部网络之间彼此隔离,可通过应用部署装置上运行的远程部署平台执行本申请实施例的方法,将外部网络中的应用程序部署到内部网络中、离线状态下的目标服务器中。下文将结合该示例性的应用场景,对本申请实施例进行说明。
如图1所示,所述方法可以包括:
步骤S11,获取源代码文件并对所述源代码文件进行编译得到可执行文件。
其中,所述源代码文件表示需要部署的应用程序的原始代码,所述可执行文件表示计算机直接执行的指令和数据。
步骤S12,根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,得到第一容器镜像文件。
其中,所述目标服务器为离线环境服务器,所述离线环境表示所述目标服务器为内外网隔离的服务器。
步骤S13,对所述第一容器镜像文件进行打包处理得到所述可执行文件对应的第一容器镜像安装包。
步骤S14,通过移动存储设备将所述第一容器镜像安装包移植到所述目标服务器,以使得所述目标服务器执行自动部署脚本,将所述第一容器镜像安装包部署到所述目标服务器。
在本公开实施例中,在面对离线环境的应用程序部署需求时,可以获取应用程序的源代码文件,并将所述源代码文件编译为计算机可执行的可执行文件,根据目标服务器的环境配置信息(即离线环境的环境配置信息)对可执行文件进行镜像制作,得到容器镜像文件,将容器镜像文件打包得到可移植的容器镜像文件安装包并将得到的安装包移植到目标服务器,在目标服务器执行自动部署脚本使得应用程序部署到目标服务器。
应用部署是一个将软件提供给用户的过程,通常包含配置环境、安装及测试等步骤,软件应用一般由开发人员进行程序源代码的编写,调试,集成构建,打包提交给测试人员。测试通过后程序包发布,最后由运维人员进行软件应用的部署。
在步骤S11中,应用程序是指为完成某项或多项特定工作的计算机程序,需要部署的应用程序可以是由开发人员编写的应用程序,也可以是某一应用程序的更新版本等,这里对应用程序的来源不作限制。
在一种可能的实现方式中,所述应用程序可以是包含所有所需功能的单块结构构建而成的整体式应用程序,可以预见,为满足所有所需功能,该应用程序需要较长的部署时间,而且因为其整体式的结构,在扩展时也会出现无法扩展等问题。
在一种可能的实现方式中,所述应用程序可以是云原生应用程序,云原生应用程序是由多个称为微服务的相互依赖的小型服务组成的软件程序。通过云原生方法,软件开发人员将功能分解为更小的微服务,使得云原生应用程序更加的敏捷,且因为微服务可以独立工作,只需极少的计算资源即可运行。
在一种可能的实现方式中,所述应用程序可以是微服务,微服务是小型的独立软件组件,它们作为完整的云原生软件共同运行。每个微服务都侧重于一个小而具体的问题。微服务是松散耦合的,它们是相互通信的独立软件组件,可以通过处理单个微服务来更改应用程序。
可以获取源代码文件,即应用程序的原始代码,原始代码通常是由高级语言编写的,例如:JAVA、C、C++、python等语言。对于开发人员来说,所述原始代码具有较高的可读性,更容易理解,但是操作系统对源代码无法识别,因此需要将高级语言编写的源代码编译为计算机能够解读、运行的低级语言的程序,得到可以由操作系统进行加载执行的文件(即可执行文件)。还可对可执行文件进行压缩,得到可执行文件对应的压缩包。对于源代码所使用的不同的程序设计语言,采用的编译方式也有所不同,以Java语言为例,在对Java语言进行编译时可以采用:javac编译命令集、mvn编译命令集。
在通过对源代码文件进行编译得到可执行文件后,即可以使得用户的服务器(目标服务器)通过可执行文件使用应用程序相应的功能,而在读取使用可执行文件时需要注意的是服务器当前的配置应符合应用程序。因此,在本公开实施例中,引入容器技术(Docker)来将应用程序及其配置信息一起打包到用户的服务器中。
容器技术可以打包应用程序以及对应的依赖项(例如主应用程序运行所需的资源文件、库和脚本)到一个可移植的镜像中,然后发布到其余机器上,实现虚拟化。在一种可能的实现方式中,容器是云原生应用程序中最小的计算单元,它们是将微服务代码和其他必需文件打包在云原生系统中的软件组件。通过容器化微服务,云原生应用程序独立于底层操作系统和硬件运行。
在本公开实施例中,镜像,是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。一个镜像可以包含一个完整的操作系统环境和用户需要的其他应用程序,运用Docker运行容器前需要本地存在对应的镜像,一个镜像可以创建多个容器。容器是通过镜像在目标服务器创建的实例,它的内部可以安装任何软件和库文件,做任意的运行环境配置,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。即镜像是一种只可读的静态的文件,而容器则是通过镜像根据实际配置创建的动态的实例。
在步骤S12中,所述环境配置信息是指在操作系统中用来指定操作系统运行环境的一些参数,是操作系统为了满足不同的应用场景预先设置的一大批全局变量。在本公开实施例中,环境配置信息可以分为系统级环境变量和用户级环境变量,其中,系统级环境变量对所有用户和进程都可见,用户级环境变量则是每个用户独立设置的,只对该用户及其相关进程可见。例如PATH变量即为系统级环境变量,决定了系统在哪些目录中查找可执行文件,USER变量即为用户级环境变量,用于指定当前用户的用户名。
在本公开实施例中,在面对特定的内网系统,可以针对其系统的环境定制容器镜像,在面对不同的系统环境时,相同的应用程序运行的结果可能会出现不一致的问题。因此,在面对不同的系统环境时,可以按照本地的环境制作出一个搭载应用程序的容器镜像文件,以使得不同的部署环境根据需要进行环境信息的配置。在面对指定的内网系统环境时,可以针对指定的系统环境进行环境信息的配置,并基于所述环境制作出对应的搭建应用程序的容器镜像文件。
在本公开实施例中,目标服务器的环境配置信息可以通过配置文件进行设置和管理,在编写好环境配置信息后,即可制作可执行文件对应的容器镜像。
在一种可能的实现方式中,在制作镜像时,可以基于已有的镜像创建,即将目前的容器中运行的程序及运行环境打包生成新的镜像。在基于已有的镜像创建时,可以根据容器的名称及仓库的名称或标签选中容器,停止容器的运行,将容器打包生成新的镜像。
在一种可能的实现方式中,在制作镜像时,可以基于本地模板创建,即通过导入操作系统模板文件生成新的镜像,将其导入为本地镜像后即可查看本地镜像信息。
在本公开实施例中,在制作镜像时,还可以基于Dockerfile脚本进行创建,Dockerfile是一种被Docker程序解释的脚本,其由一条一条的指令组成,每条指令对应系统下面的一条命令,用于定义和配置一个Docker镜像。
在一种可能的实现方式中,所述根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,包括:根据所述目标服务器的环境配置信息选择并获取基础容器镜像文件,所述基础容器镜像文件的环境配置信息和所述目标服务器的环境配置信息相同;指定所述基础容器镜像文件中的第一工作目录,删除当前所述第一工作目录下的文件;将所述可执行文件拷贝到所述第一工作目录中得到包含所述可执行文件的第一容器镜像文件。
在本公开实施例中,在利用Dockerfile脚本创建镜像时,需要预先获取基础容器镜像文件,所述基础容器镜像文件可以从官方的远程镜像库中获取,也可以从本地镜像库中获取,在选择基础容器镜像文件后,后续的操作即基于该基础容器镜像文件进行。所述基础容器镜像文件可以基于目标服务器的环境配置信息选择,即该基础容器镜像文件的配置文件中的环境配置信息可以与指定的目标服务器的环境配置信息相同,以方便后续调节环境配置信息。
在本公开实施例中,在获得基础容器镜像文件后即可利用Dockerfile脚本中的指令对其进行操作以得到期望的应用程序对应的第一容器镜像文件。在得到基础容器镜像文件后,需要在基础容器镜像文件中指定一个工作目录作为第一工作目录以用于存放所述应用程序的可执行文件,在Dockerfile脚本中,可以用WORKDIR指令来指定工作目录,通过WORKDIR指令可以在构建镜像的每一层中都将工作目录作为指令的指定目录,即后续各层的当前目录都被改为指定的目录。
在确定了第一工作目录后即可删除掉第一工作目录中当前存放的文件,并将应用程序对应的可执行文件拷贝到第一工作目录。这个过程中,可以在删掉第一工作目录下的文件后再在第一工作目录中新建一个子目录,将应用程序对应的可执行文件拷贝到新建的子目录下即得到了带有可执行文件的第一容器镜像文件。
在本公开实施例中,所述根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,还可包括:为所述第一容器镜像文件指定容器的端口,所述端口为容器需要映射到目标服务器的端口。
在将可执行文件拷贝到工作目录后,可以利用EXPOSE指令对容器镜像文件指定容器的端口,所述端口即为容器需要映射到目标服务器的端口。在访问容器时,可以不使用容器的IP地址而是使用目标服务器的IP地址和映射后的端口。容器每次运行时容器的IP地址不能指定,而是随机生成的,而目标服务器的IP地址是固定的,这样,可以免去每次访问容器中的某个服务时都要查看容器的IP地址。
在一种可能的实现方式中,可以利用Dockerfile脚本制作第一容器镜像文件,其中,可以利用FROM指令去指定容器镜像文件的名称,例如“centos:jbk8”用于指定定制的基础容器镜像文件centos:jbk8,该基础容器镜像文件表示在Linux环境下安装java环境的镜像文件。WORKDIR指令如上所述,即用来指定工作目录。利用“Run yuminstall-y unzip”指令安装解压文件包,该指令即将上述得到的基础容器镜像文件对应的压缩包进行解压操作。利用“Run rm-rf”指令删除掉指定工作目录下的文件,例如对指定的“$ROOR_PATH/*”下的文件进行删除,即将ROOR_PATH作为工作目录,将其下的文件进行删除。“ADD”指令用于拷贝可执行文件对应的压缩包,可以其拷贝到指定的地址中。利用mkdir指令构建在第一工作目录下构建新的子目录。利用“RUN unzip”将上述拷贝下来的可执行文件对应的压缩包解压缩到第一工作目录中。;利用EXPOSE指令声明该容器镜像文件的端口,以方便后续配置映射端口。CMD指令用于设置启动时指定的操作,该操作可以是执行自定义脚本,也可以是执行系统命令。
在本公开实施例中,根据目标服务器的环境配置信息对应用程序对应的可执行文件进行镜像制作,利用Dockerfile脚本在制作第一容器镜像文件时,选择与目标服务器的环境配置信息对应的容器镜像文件作为基础容器镜像文件,利用更改工作目录中的内容的形式将应用程序对应的可执行文件放入容器镜像文件中以得到与目标服务器的环境配置相同的第一容器镜像文件。使用容器技术且结合了目标服务器的环境配置信息,使得第一容器镜像文件可以屏蔽底层环境的差异,对应用程序的运行环境和依赖关系进行打包,使得开发环境和目标服务器的离线环境完全一致,在部署时可以减少手动重复的操作,为自动化部署的实现打好了基础。
在步骤S13中,在内网离线环境下,容器镜像文件无法通过应用商店、远程部署平台等直接传输到目标服务器,因此,在将应用程序对应的可执行文件制作为第一容器镜像文件后,可以将所述第一容器镜像文件进行打包处理以得到可执行文件对应的第一容器镜像安装包。
在一种可能的实现方式中,所述对所述第一容器镜像文件进行打包处理,包括:将所述第一容器镜像文件存放到容器镜像文件服务器中进行保存;在接收到对所述第一容器镜像文件进行打包处理的指令后,将所述第一容器镜像文件拉取,并利用自动打包脚本对所述第一容器镜像文件进行打包得到所述第一容器镜像安装包。
在本公开实施例中,在得到所述第一容器镜像文件后,可以将其存放在容器镜像文件服务器中,该容器镜像文件服务器可以是本地的容器镜像文件服务器,也可以是远程的镜像平台。容器镜像文件服务器可以用于存放各种容器镜像文件并对容器镜像文件进行管理。在得到第一容器镜像文件后将其存放在容器镜像文件服务器,可以在后续使用第一容器镜像文件时更方便的寻找到。例如,在后续提取第一容器镜像文件以传输给其他的目标平台进行部署,或提取第一容器镜像文件后在其基础上进行更新时,都可以通过容器镜像文件服务器快速的寻找到期望使用的镜像文件。
在一种可能的实现方式中,在将第一容器镜像文件存放到容器镜像文件服务器时,可以使用docker push指令将其存放入容器镜像文件服务器。首先,登录容器镜像文件服务器,并利用docker push指令将打过标签的第一容器镜像文件推送到容器镜像文件服务器。这样,在需要使用时可以直接使用,且可以对其设置是否开放,以决定其他使用人员是否可以使用第一容器镜像文件。
在本公开实施例中,在想要将第一容器镜像文件进行打包处理时,可以从容器镜像文件服务器中将第一容器镜像文件提取出来。可以使用docker pull指令从容器镜像服务器中选中容器镜像文件并将其拉取,在使用docker pull指令时可以选择具体的容器镜像文件服务器,即通过容器镜像文件服务器的地址找到期望容器镜像文件服务器,从中拉取期望的容器镜像文件。拉取第一容器镜像文件的过程是一层层的下载的,因为容器镜像文件是分层存储的,所以在拉取容器镜像文件时,也是一层层的下载的,并非是单一的文件。
在本公开实施例中,在拉取第一容器镜像文件到本地服务器后,即可利用自动打包脚本对所述第一容器镜像文件进行打包以得到第一容器镜像安装包。本公开实施例中的自动打包脚本可以是利用shell编写的.sh脚本。“docker build”指令可以用于构建容器镜像文件,例如将第一容器镜像文件命名为app:1.0,其中1.0作为标签可以用来表示版本。Docker save指令可以将第一容器镜像文件app:1.0生成为app.tar文档。相应的,利用Docker save指令也可以将数据库容器镜像文件生成为mysql.tar文档,将数据库也进行归档。Cp指令用于将要复制的文件或目录的路径复制到指定的文件或目录的路径中,即将上述归档的app.tar、mysql.tar和startup.sh脚本、docker-compose.yml脚本及docker-compose文件复制到指定目录中,docker-compose文件将在后文中做详细的介绍。
执行上述自动打包脚本即可将第一容器镜像文件和对其对应的数据库容器镜像文件、配置信息一起进行打包处理,得到第一容器镜像安装包,方便将应用程序从本地服务器移植到目标服务器。
在本公开实施例中,在得到第一容器镜像文件后,可以将其推送到容器镜像文件服务器进行存储及管理,在接收到对第一容器镜像文件进行打包处理的指令后,即可从容器镜像文件服务器中直接查找并拉取出第一容器镜像文件,利用自动打包脚本将第一容器镜像文件和数据库容器镜像文件、配置信息等一起进行打包,得到方便移植的第一容器镜像安装包。通过这种方式将第一容器镜像文件和与其对应的配置文件一起打包,在移植到目标服务器后可以快速适配环境,完成自动化部署。
在步骤S14中,在得到第一容器镜像安装包后,需要从本地服务器将第一容器镜像安装包迁移到目标服务器中,在这一过程中,如果目标服务器可与外部网联通,则本地服务器可以通过统一的远程部署平台将安装包上传到平台后,目标服务器利用远程部署平台将对应的容器镜像安装包下载到服务器后即完成了第一容器镜像安装包的迁移。
在本公开实施例中,目标服务器为离线内网环境,无法与外部网联通,因此无法从一个统一的平台中下载容器镜像安装包到服务器端。此时,可以通过离线交付的方式将所述容器镜像安装包移植到目标服务器中。
在本公开实施例中,可以将第一容器镜像安装包先保存到移动存储设备,再利用挂载的方式将移动存储设备挂接到目标服务器的一个目录上,所述移动存储设备可以是光盘、硬盘、磁带等,在通过移动存储设备将第一容器镜像安装包移植到目标服务器时,可以在目标服务器新建一个目录以存放移植过来的第一容器镜像安装包,也可以利用已存在的目录存放移植过来的第一容器镜像安装包。
在本公开实施例中,利用移动存储设备将第一容器镜像安装包移植到目标服务器中,利用这种方式完成了离线交付,使得内网离线环境也可以接收到外部传来的文件,为后续的自动部署做好了准备。
在目标服务器端,接收到第一容器镜像安装包后,即可以执行自动部署脚本将第一容器镜像安装包部署到目标服务器中,将安装包携带的应用程序和对应的数据库容器镜像文件、配置信息等文件都进行自动部署,使得目标服务器可以使用对应的应用程序。
在一种可能的实现方式中,所述执行自动部署脚本将所述第一容器镜像安装包部署到所述目标服务器包括:查找目标服务器的容器镜像文件,选中第一容器镜像安装包并对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件;创建第二工作目录,将所述第一容器镜像文件拷贝到所述第二工作目录中;打开所述第一容器镜像文件中的可执行文件,完成对所述目标服务器的部署。
在本公开实施例中,通过执行自动部署脚本可以将容器镜像安装包进行自动部署,在执行自动部署脚本后,可以在本地的服务器中查找所有的容器镜像文件,从中判断是否存在第一容器镜像安装包,在确定存在第一容器镜像安装包后,即可将所述第一容器镜像安装包选中并进行解压得到其中的第一容器镜像文件和对应的数据库容器镜像文件、配置信息等一同打包的文件。在目标服务器中创建一个新的工作目录(即第二工作目录),将第一容器镜像文件存放到第二工作目录中。利用指定的工作目录即可开启对应的第一容器镜像文件中的可执行文件,使目标服务器可以执行对应的应用程序,完成自动部署。
在本公开实施例中,通过自动部署脚本将第一容器镜像安装包部署到目标服务器,通过新建工作目录,可以让目标服务器从指定的目录中开启对应的可执行文件,从而使用需要安装的应用程序。
在一种可能的实现方式中,所述对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件包括:对所述第一容器镜像安装包进行解压得到所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息,所述配置信息用于指示所述第一容器镜像安装包的名称、端口及环境信息;对所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息利用数据卷机制进行备份;将所述第一容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的第一容器镜像文件。
在本公开实施例中,在执行自动部署脚本时,对第一容器镜像安装包解压除了得到第一容器镜像文件外,还可以得到一同打包的配置信息和对应的数据库容器镜像文件,所述配置信息为开发人员在本地服务器预先编写好的携带有配置信息的文件,所述配置信息可以指示第一容器镜像安装包的名称、端口及环境信息等。
在进行对容器镜像的部署时,需要对容器镜像进行临时的配置,例如,通过设置“-ip”参数以设置容器绑定IP时使用的默认IP地址。在一种可能的实现方式中,可以基于docker-compose工具对容器镜像文件进行设置,通过docker-compose工具可以对容器镜像文件中的多个服务进行管理及配置,例如,对第一容器镜像文件和对应的数据库容器镜像文件进行管理和配置。
docker-compose是一个用来定义和运行复杂应用的docker工具,一个使用docker容器的应用程序,通常由多个镜像组成。使用docker-compose可以通过一个配置文件来管理多个容器,在一种可能的实现方式中,利用docker-compose工具进行容器配置时,需要预先通过“version”指令来指定本脚本依从的是compose哪个版本制定的,例如,“version:3”即表示该脚本是基于的compose的v3版本的语法编写的。在确定语法版本后,即可以针对不同的容器进行配置设置,通过设置不同的服务管理顺序对不同的容器进行管理。在对镜像文件进行配置时,可以利用“image”指令来指定启动容器的镜像,例如“image:app1.0”即为指定第一容器镜像文件作为启动容器的镜像。可以使用“volumes”指令将希望保存的文件进行备份,即可以将第一容器镜像文件和对应的配置信息进行备份到指定的文件夹。使用“ports”指令可以指定目标服务器对应的端口,例如“ports:8080:8080”即将容器和目标服务器的端口进行指定。
执行自动部署脚本后,对第一容器镜像安装包进行解压以得到第一容器镜像文件、配置信息,为配置信息创建新的工作目录,并对其进行备份,删除原有的配置文件,利用新的配置信息对参数进行设置后,即可将第一容器镜像文件中的可执行文件启动,以使用对应的应用程序,完成配置。
在本公开实施例中,将配置信息与第一容器镜像文件一同打包移植到目标服务器,在对第一容器镜像文件进行部署前,利用配置信息对目标服务器的配置参数进行修改。通过预置配置信息并指定第一容器镜像文件、版本,可以直接启动第一容器镜像文件,而无需进行临时的人工配置,减少部署时间,实现了部署的自动化。
在一种可能的实现方式中,所述方法还包括:导入对所述第一容器镜像安装包进行解压得到的数据库容器镜像安装包,对所述数据库容器镜像安装包进行解压得到数据库容器镜像文件和所述数据库容器镜像文件对应的配置信息;将所述数据库容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的数据库容器镜像文件。
在本公开实施例中,在对容器镜像文件进行部署时,需要携带其对应的数据库容器镜像文件,如上所述,可将数据库容器镜像文件压缩为数据库容器镜像安装包,再与其他文件或压缩包一起打包得到第一容器镜像安装包,配置信息可以对多个文件进行配置,利用配置信息更改配置参数后,可以导入数据容器镜像安装包,对数据库容器镜像安装包进行解压即可得到数据库容器镜像文件,将数据库容器镜像文件部署到目标服务器中,使得第一容器镜像文件中携带的可执行文件可以正常的运行。
在对第一容器镜像文件和数据库容器镜像文件进行配置和解压后,即可根据配置信息对其进行自动化安装,并运行对应的应用程序。
在一种可能的实现方式中,自动部署脚本可以利用shell脚本实现,shell脚本使用时需要指定shell脚本解释器的路径,例如通过“#/bin/bash”指定解释器的路径。利用“docker images”指令列出本地的全部镜像文件,从中寻找是否存在需要部署的第一容器镜像文件,在确定存在需要部署的镜像文件后,利用“tar”指令将安装包进行解压,并利用“mv”指令来将解压得到的文件移动到目标服务器中指定的目录下,当目标服务器中不存在指定的目录的情况下,可以将解压得到的文件改名为指定的目录名,并移动到对应的位置。利用“mkdir”指令创建新的目录地址。利用“cp”指令将解压得到的文件复制到新建的目录下,通过“mv”“mkdir”和“cp”指令即实现了将解压得到的文件移动到新建的指定工作目录下,且对文件进行了备份。
在实现文件的备份和移动后,即可准备启动镜像文件,以得到目标服务器运行的容器从而使用其携带的应用程序。在这个情况下,使用“systemctl”指令来启动镜像,例如“systemctl start docker”指令来启动容器,也可以利用“systemctl enabledocker”指令来使得目标服务器在开机时自动启动相应的容器。可以想象,上述的启动项是可以选择的,即在目标服务器端进行自动部署时,用户即可以通过目标服务器的前端页面选择是否启动程序和是否设为开机启动项的选项来对容器的开启进行控制。
在对容器的启动选择后即可进行后续的部署环节,利用“rm”指令删除原有的配置文件,利用“cp”指令将配置信息文件复制到指定的目录下,即可以使研发人员在本地服务器中预先编写的与第一容器镜像文件对应的配置信息覆盖目标服务器原有的配置信息。利用“chmod”指令对配置信息文件添加可执行权限,配置信息文件是一个脚本,在上传到目标服务器后是一个普通的文件,不能执行,利用“chmod+x”指令即可为配置信息文件设置可执行的权限,从而利用配置信息文件对目标服务器的配置参数进行修改。
在完成对目标服务器配置参数的修改后即可将第一容器镜像文件和数据库镜像文件部署到目标服务器中,利用预先编写好的docker-compose即可按照预先设置的顺序启动镜像文件得到运行的容器,从而在目标服务器中可以使用应用程序,完成应用程序的离线自动部署。
在一种可能的实现方式中,除了首次部署外,在目标服务器中,利用第一容器镜像安装包自动部署应用程序后,利用对其进行的备份文件,可以在升级版本上线后出现异常情况时,在目标服务器中寻找之前版本的镜像文件,按照本公开的方法进行自动部署,以实现版本的回滚。
在本公开实施例中,提出了一种离线环境下的应用部署方法,将开发平台本地服务器中的应用程序对应的源代码文件编译为可以被计算机读的可执行文件,利用容器技术将可执行文件进行镜像制作得到对应的镜像文件,并在本地服务器预先设置好配置信息,将配置信息和容器镜像文件一同进行打包处理得到可移植的安装包。利用移动存储设备等方式完成离线交付,将安装包移植到目标服务器,并在目标服务器利用预先配置好的配置信息完成自动化部署,保证了部署过程高效、高质量的完成。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了离线环境下的应用部署装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种离线环境下的应用部署方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图2示出根据本公开实施例的离线环境下的应用部署装置的结构示意图。如图2所示,该装置20可以包括:
编译模块21,用于获取源代码文件并对所述源代码文件进行编译得到可执行文件,所述源代码文件表示需要部署的应用程序的原始代码,所述可执行文件表示计算机直接执行的指令和数据;
镜像制作模块22,用于根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,得到第一容器镜像文件,所述目标服务器为离线环境服务器,所述离线环境表示所述目标服务器为内外网隔离的服务器;
镜像打包模块23,用于对所述第一容器镜像文件进行打包处理得到所述可执行文件对应的第一容器镜像安装包;
移植模块24,用于通过移动存储设备将所述第一容器镜像安装包移植到所述目标服务器,以使得所述目标服务器执行自动部署脚本将所述第一容器镜像安装包部署到所述目标服务器。
在一种可能的实现方式中,所述镜像制作模块还用于:根据所述目标服务器的环境配置信息选择并获取基础容器镜像文件,所述基础容器镜像文件的环境配置信息和所述目标服务器的环境配置信息相同;指定所述基础容器镜像文件中的第一工作目录,删除当前所述第一工作目录下的文件;将所述可执行文件拷贝到所述第一工作目录中得到包含所述可执行文件的第一容器镜像文件。
在一种可能的实现方式中,所述镜像制作模块还用于:为所述第一容器镜像文件指定容器的端口,所述端口为容器需要映射到目标服务器的端口。
在一种可能的实现方式中,所述镜像打包模块还用于:将所述第一容器镜像文件存放到容器镜像文件服务器中进行保存;在接收到对所述第一容器镜像文件进行打包处理的指令后,将所述第一容器镜像文件拉取,并利用自动打包脚本对所述第一容器镜像文件进行打包得到所述第一容器镜像安装包。
在一种可能的实现方式中,所述自动部署模块还用于:查找目标服务器的容器镜像文件,选中第一容器镜像安装包并对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件;创建第二工作目录,将所述第一容器镜像文件拷贝到所述第二工作目录中;打开所述第一容器镜像文件中的可执行文件,完成对所述目标服务器的部署。
在一种可能的实现方式中,所述对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件包括:对所述第一容器镜像安装包进行解压得到所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息,所述配置信息用于指示所述第一容器镜像安装包的名称、端口及环境信息;对所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息利用数据卷机制进行备份;将所述第一容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的第一容器镜像文件。
在一种可能的实现方式中,所述自动化部署模块还用于:导入对所述第一容器镜像安装包进行解压得到的数据库容器镜像安装包,对所述数据库容器镜像安装包进行解压得到数据库容器镜像文件和所述数据库容器镜像文件对应的配置信息;将所述数据库容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的数据库容器镜像文件。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
电子设备可以被提供为服务器或其它形态的设备。
图3示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器或终端设备。参照图3,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OSXTM),多用户多进程的计算机操作系统(UnixTM),自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种离线环境下的应用部署方法,其特征在于,所述方法包括:
获取源代码文件并对所述源代码文件进行编译得到可执行文件,所述源代码文件表示需要部署的应用程序的原始代码,所述可执行文件表示计算机直接执行的指令和数据;
根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,得到第一容器镜像文件,所述目标服务器为离线环境服务器,所述离线环境表示所述目标服务器为内外网隔离的服务器;
对所述第一容器镜像文件进行打包处理得到所述可执行文件对应的第一容器镜像安装包;
通过移动存储设备将所述第一容器镜像安装包移植到所述目标服务器,以使得所述目标服务器执行自动部署脚本将所述第一容器镜像安装包部署到所述目标服务器。
2.根据权利要求1所述的方法,其特征在于,所述根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,包括:
根据所述目标服务器的环境配置信息选择并获取基础容器镜像文件,所述基础容器镜像文件的环境配置信息和所述目标服务器的环境配置信息相同;
指定所述基础容器镜像文件中的第一工作目录,删除当前所述第一工作目录下的文件;
将所述可执行文件拷贝到所述第一工作目录中得到包含所述可执行文件的第一容器镜像文件。
3.根据权利要求2所述的方法,其特征在于,所述根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,还包括:
为所述第一容器镜像文件指定容器的端口,所述端口为容器需要映射到目标服务器的端口。
4.根据权利要求1所述的方法,其特征在于,所述对所述第一容器镜像文件进行打包处理,包括:
将所述第一容器镜像文件存放到容器镜像文件服务器中进行保存;
在接收到对所述第一容器镜像文件进行打包处理的指令后,将所述第一容器镜像文件拉取,并利用自动打包脚本对所述第一容器镜像文件进行打包得到所述第一容器镜像安装包。
5.根据权利要求1所述的方法,其特征在于,所述执行自动部署脚本将所述第一容器镜像安装包部署到所述目标服务器包括:
查找目标服务器的容器镜像文件,选中第一容器镜像安装包并对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件;
创建第二工作目录,将所述第一容器镜像文件拷贝到所述第二工作目录中;
打开所述第一容器镜像文件中的可执行文件,完成对所述目标服务器的部署。
6.根据权利要求5所述的方法,其特征在于,所述对所述第一容器镜像安装包进行解压得到可拷贝的第一容器镜像文件包括:
对所述第一容器镜像安装包进行解压得到所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息,所述配置信息用于指示所述第一容器镜像安装包的名称、端口及环境信息;
对所述第一容器镜像文件和所述第一容器镜像文件对应的配置信息利用数据卷机制进行备份;
将所述第一容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的第一容器镜像文件。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
导入对所述第一容器镜像安装包进行解压得到的数据库容器镜像安装包,对所述数据库容器镜像安装包进行解压得到数据库容器镜像文件和所述数据库容器镜像文件对应的配置信息;
将所述数据库容器镜像安装包的端口与所述目标服务器的端口进行映射,得到可拷贝的数据库容器镜像文件。
8.一种离线环境下的应用部署装置,其特征在于,所述装置包括:
编译模块,用于获取源代码文件并对所述源代码文件进行编译得到可执行文件,所述源代码文件表示需要部署的应用程序的原始代码,所述可执行文件表示计算机直接执行的指令和数据;
镜像制作模块,用于根据目标服务器的环境配置信息对所述可执行文件进行镜像制作,得到第一容器镜像文件,所述目标服务器为离线环境服务器,所述离线环境表示所述目标服务器为内外网隔离的服务器;
镜像打包模块,用于对所述第一容器镜像文件进行打包处理得到所述可执行文件对应的第一容器镜像安装包;
移植模块,用于通过移动存储设备将所述第一容器镜像安装包移植到所述目标服务器,以使得所述目标服务器执行自动部署脚本将所述第一容器镜像安装包部署到所述目标服务器。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至7中任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311714522.3A CN117931214A (zh) | 2023-12-13 | 2023-12-13 | 离线环境下的应用部署方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311714522.3A CN117931214A (zh) | 2023-12-13 | 2023-12-13 | 离线环境下的应用部署方法及装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117931214A true CN117931214A (zh) | 2024-04-26 |
Family
ID=90760156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311714522.3A Pending CN117931214A (zh) | 2023-12-13 | 2023-12-13 | 离线环境下的应用部署方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931214A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118151961A (zh) * | 2024-05-07 | 2024-06-07 | 龙芯中科(合肥)技术有限公司 | 运行环境的部署方法、装置、电子设备及存储介质 |
-
2023
- 2023-12-13 CN CN202311714522.3A patent/CN117931214A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118151961A (zh) * | 2024-05-07 | 2024-06-07 | 龙芯中科(合肥)技术有限公司 | 运行环境的部署方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017092672A1 (zh) | 一种Docker容器运行方法和装置 | |
US9513938B2 (en) | Virtual appliance integration with cloud management software | |
US9047160B2 (en) | Designing and building virtual images using semantically rich composable software image bundles | |
CN106406960B (zh) | 一种linux环境中快速部署软件的方法 | |
CN111198744A (zh) | 自动化应用程序容器化和镜像备份发布的方法 | |
US9690566B2 (en) | System and method for virtual assembly patching in a cloud environment | |
JP7050106B2 (ja) | 実行可能分析モジュールをインスタンス化する方法 | |
CN107408046B (zh) | 用于跨异构计算环境供应云服务的系统和方法 | |
CN117931214A (zh) | 离线环境下的应用部署方法及装置、电子设备和存储介质 | |
CN111651168A (zh) | 一种面向云原生应用场景的操作系统定制方法 | |
CN112882729A (zh) | 应用镜像升级方法、装置、计算机设备和存储介质 | |
CN111930465A (zh) | 一种基于Kubernetes的达梦主从集群部署方法和装置 | |
CN113434158A (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
CN115480801A (zh) | 一种基于Vue框架的多项目开发部署运行方法和系统 | |
CN114253562A (zh) | 一种服务器软件包的管理及部署方法及其系统 | |
CN112711403A (zh) | 游戏开发同步的方法、装置、计算机设备和存储介质 | |
CN114721783B (zh) | 资源文件提取方法、装置、电子设备及存储介质 | |
CN115658237A (zh) | 一种容器应用自动部署方法、设备、装置、设备及介质 | |
US11900089B2 (en) | Automatically configuring and deploying a software operator in a distributed computing environment from a package | |
CN111949276B (zh) | 一种基于容器方式自动部署应用程序的系统及方法 | |
CN111459530B (zh) | 打补丁方法、装置和存储介质 | |
CN115145604A (zh) | 一种容器化的电力营销系统部署方法 | |
CN113900674A (zh) | 一种自动化部署方法、装置及存储介质 | |
US11900091B2 (en) | Extensible upgrade and modification as a service | |
CN113076109B (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 |