一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种go微服务自动化部署的方法及系统与流程

2022-04-27 11:39:14 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别是一种go微服务自动化部署的方法及系统。


背景技术:

2.随着单体应用越来越庞大,单体架构的弊端将会愈发明显,例如项目臃肿,难维护,难扩展,牵一发而动全身。在分布式环境中,按照业务边界进行划分,将单体应用拆分为一系列服务,共同组成整个系统。微服务架构解决单体应用痛点的情况下,也衍生了一些新的问题,例如如何快速部署,如何编排管理等等。


技术实现要素:

3.为克服上述问题,本发明的目的是提供一种能够实现将批处理文件从windows系统一键打包至linux服务器的部署的方法。
4.本发明采用以下方案实现:一种go微服务自动化部署的方法,其包括以下步骤:
5.步骤s1、编写一批处理文件,从代码目录生成可执行二进制文件,将可执行二进制文件复制到打包目录和复制配置文件打包目录;
6.步骤s2、编写构建镜像所需的文件,进入打包目录,执行生成容器镜像命令,打包容器镜像文件,将容器镜像文件上传至镜像仓库内;
7.步骤s3、服务器执行拉取镜像仓库的命令,判断是否存在新增容器镜像文件,是,则更新执行容器镜像文件自动编排命令,否,则等待下次拉取镜像仓库,从而能够实现docker开源容器引擎和批处理文件实现从windows系统一键打包至linux服务器的部署。
8.进一步的,所述步骤s1进一步具体为:进入代码目录,在代码目录下创建打包目录app,设置go微服务编译的环境参数,执行go微服务打包命令,会生成一个名为myprogram的可执行二进制文件到app目录,二进制文件就是go微服务程序生成的执行文件,再复制代码目录下的app.config配置文件到app目录用于程序读取配置数据。
9.进一步的,所述步骤s2进一步具体为:提前准备构建镜像所需文件dockerfile,内容为设置中国时区,设置编码,声明容器的访问端口和启动容器时的运行命令,此时打包目录app有三个文件,分别是dockerfile镜像文件、myprogram可执行二进制文件和app.config配置文件,进入打包目录app,执行生成容器镜像命令docker build,再执行上传镜像命令docker push上传至容器镜像仓库。
10.进一步的,所述步骤s3进一步具体为:在服务器上编写一个检测程序,检测程序能够使服务器每隔五秒执行拉取镜像仓库的命令,判断镜像仓库内是否存在新的容器镜像文件,是,则执行容器部署命令执行容器编排文件,对容器进行文件进行编排配置部署,否,则等待下次拉取镜像仓库。
11.本发明还提供了一种go微服务自动化部署的系统,包括生成模块、执行打包模块和运行模块,所述生成模块,即编写一批处理文件,从代码目录生成可执行二进制文件,将可执行二进制文件复制到打包目录和复制配置文件打包目录;所述执行打包模块,即编写
构建镜像所需的文件,进入打包目录,执行生成容器镜像命令,打包容器镜像文件,将容器镜像文件上传至镜像仓库内;所述运行模块,即服务器执行拉取镜像仓库的命令,判断是否存在新增容器镜像文件,是,则更新执行容器镜像文件自动编排命令,否,则等待下次拉取镜像仓库,从而能够实现docker开源容器引擎和批处理文件实现从windows一键打包至linux服务器的部署。
12.进一步的,所述生成模块进一步具体为:进入代码目录,在代码目录下创建打包目录app,设置go微服务编译的环境参数,执行go微服务打包命令,会生成一个名为myprogram的可执行二进制文件到app目录,二进制文件就是go微服务程序生成的执行文件,再复制代码目录下的app.config配置文件到app目录用于程序读取配置数据。
13.进一步的,所述执行打包模块进一步具体为:提前准备构建镜像所需文件dockerfile,内容为设置中国时区,设置编码,声明容器的访问端口和启动容器时的运行命令,此时打包目录app有三个文件,分别是dockerfile镜像文件、myprogram可执行二进制文件和app.config配置文件,进入打包目录app,执行生成容器镜像命令docker build,再执行上传镜像命令docker push上传至容器镜像仓库。
14.进一步的,所述运行模块进一步具体为:在服务器上编写一个检测程序,检测程序能够使服务器每隔五秒执行拉取镜像仓库的命令,判断镜像仓库内是否存在新的容器镜像文件,是,则执行容器部署命令执行容器编排文件,对容器进行文件进行编排配置部署,否,则等待下次拉取镜像仓库。
15.本发明的有益效果在于:本发明能够实现go微服务程序在跨平台环解的一键编译和部署,减轻了微服务架构下多服务快速部署的痛点。
附图说明
16.图1是本发明的方法流程示意图。
17.图2是本发明的系统原理框图。
具体实施方式
18.下面结合附图对本发明做进一步说明。
19.请参阅图1所示,本发明的一种go微服务自动化部署的方法,其包括以下步骤:
20.步骤s1、编写一批处理文件,从代码目录生成可执行二进制文件,将可执行二进制文件复制到打包目录和复制配置文件打包目录;
21.步骤s2、编写构建镜像所需的文件,进入打包目录,执行生成容器镜像命令,打包容器镜像文件,将容器镜像文件上传至镜像仓库内;
22.步骤s3、服务器执行拉取镜像仓库的命令,判断是否存在新增容器镜像文件,是,则更新执行容器镜像文件自动编排命令,否,则等待下次拉取镜像仓库,从而能够实现docker开源容器引擎和批处理文件实现从windows系统一键打包至linux服务器的部署。
23.下面通过一具体实施例对本发明作进一步说明:
24.步骤1、编写批处理文件从代码目录生成可执行二进制文件到打包目录和复制配置文件打包目录。
25.编写批处理文件内容如下:进入代码目录,在代码目录下创建打包目录app,设置
go编译的64位linux环境参数set goarch=amd64 set goos=linux,用于设置go编译的64位linux环境参数,执行go打包命令go build-o myprogram app,会生成一个名为myprogram的可执行二进制文件到app目录,二进制文件就是go程序生成的执行文件,再复制代码目录下的app.config到app目录,配置文件app.config用于程序读取配置数据使用。myprogram这个就是生成的二进制文件名称,是go build-o myprogram app中的myprogram,可以根据自己项目名称指定。内容如下:
26.rem进入代码目录
27.e:
28.cd e:\gopath\src\server.mico\gateway
29.md app
30.rem设置编译环境,构建服务
31.set goarch=amd64
32.set goos=linux
33.go build-o myprogram app
34.rem复制配置文件至app
35.copy app.config app
36.步骤2、编写构建镜像的文件dockerfile,进入打包目录app执行docker build打包镜像。dockerfile就是构建镜像所需使用的文件,dockerfile可以是提前准备好的,是构建镜像所需的文件。然后用docker通过dockerfile来构建镜像。
37.提前准备好dockerfile,内容为设置中国时区,设置编码,声明容器的访问端口和启动容器时的运行命令。dockerfile内容如下:
38.[0039][0040]
此时打包目录app下有3个文件,分别是dockerfile、myprogram和app.config。编写批处理文件内容如下:进入打包目录app,执行生成容器镜像命令docker build打包镜像,再执行上传镜像命令docker push上传至容器镜像仓库。内容如下:
[0041]
rem进入打包目录
[0042]
cd app
[0043]
rem打包容器镜像
[0044]
docker build-t 172.24.132.232:5000/mico/gateway.
[0045]
rem上传容器镜像至镜像仓库
[0046]
docker push 172.24.132.232:5000/mico/gateway
[0047]
步骤3、服务器每5秒执行拉取镜像仓库的命令,判断是否存在新增镜像,如果存在更新则执行容器自动编排命令。
[0048]
前面的步骤1是用于生成go程序的可执行文件,步骤2用于打包容器镜像至镜像仓库。此时自动化打包程序已经准备就绪,只要在服务器上运行容器即可,为了做到自动化部署,编写一个检测程序,每隔五秒执行拉取镜像仓库的命令:docker pull 172.24.132.232:5000/mico/gateway,查看拉取信息,如果镜像仓库被更新,则执行容器部署命令docker-compose up-d执行容器编排文件docker-compose.yaml,docker-compose是一个容器编排的工具,可以使用一个yaml/yml配置文件进行应用服务的配置,然后用个简单的命令创建并启动服务。例如下面配置是部署了2个服务的docker-compose.yaml:
[0049][0050]
version:"3"是容器编排工具的版本;services是一个要部署的容器信息的集合;
[0051]
restart:always表示运行策略是总是启动;image:xxx是镜像的仓库地址;ports是容器里程序监听的端口。
[0052]
总之,本发明的go研发人员是在本地的windows开发环境编码,需要把程序发布至linux服务器上。本发明基于docker和批处理文件实现从windows一键打包至linux服务器的部署。主要分为两大部分,编写build.bat批处理文件,内容包含windows上go代码的编译、镜像打包和上传;另一部分是服务器上的检测,通过程序监听到镜像仓库更新,自动执行docker-compose.yaml完成多容器的更新部署,docker是一个开源的应用容器引擎。
[0053]
请参阅图2所示,本发明还提供了一种go微服务自动化部署的系统,包括生成模块、执行打包模块和运行模块,所述生成模块,即编写一批处理文件,从代码目录生成可执行二进制文件,将可执行二进制文件复制到打包目录和复制配置文件打包目录;所述执行打包模块,即编写构建镜像所需的文件,进入打包目录,执行生成容器镜像命令,打包容器镜像文件,将容器镜像文件上传至镜像仓库内;所述运行模块,即服务器执行拉取镜像仓库的命令,判断是否存在新增容器镜像文件,是,则更新执行容器镜像文件自动编排命令,否,则等待下次拉取镜像仓库,从而能够实现docker开源容器引擎和批处理文件实现从windows一键打包至linux服务器的部署。
[0054]
所述生成模块进一步具体为:进入代码目录,在代码目录下创建打包目录app,设置go微服务编译的环境参数,执行go微服务打包命令,会生成一个名为myprogram的可执行二进制文件到app目录,二进制文件就是go微服务程序生成的执行文件,再复制代码目录下的app.config配置文件到app目录用于程序读取配置数据。
[0055]
所述执行打包模块进一步具体为:提前准备构建镜像所需文件dockerfile,内容为设置中国时区,设置编码,声明容器的访问端口和启动容器时的运行命令,此时打包目录
app有三个文件,分别是dockerfile镜像文件、myprogram可执行二进制文件和app.config配置文件,进入打包目录app,执行生成容器镜像命令docker build,再执行上传镜像命令docker push上传至容器镜像仓库。
[0056]
所述运行模块进一步具体为:在服务器上编写一个检测程序,检测程序能够使服务器每隔五秒执行拉取镜像仓库的命令,判断镜像仓库内是否存在新的容器镜像文件,是,则执行容器部署命令执行容器编排文件,对容器进行文件进行编排配置部署,否,则等待下次拉取镜像仓库。
[0057]
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献