Jenkins部署Golang(centOS) - Go语言中文社区

Jenkins部署Golang(centOS)


前言

说到自动化部署,应该都会联想到jenkins,jenkins到底有多么强大,这里就不啰嗦了,之前一直百度“jenkins部署go”、“go自动化部署”、“jenkins 部署golang”,然而都没有详细的文档,对度娘信任快结束了。下面就将我用jenkins部署golang的过程重现一下,以作笔记。

准备工作

1、centOS安装go环境
2、centOS安装nginx
3、centOS安装supervisor进程管理工具
4、安装jenkins
5、在jenkins安装go plugin、subversion plugin

一、安装go运行环境

参考:https://blog.csdn.net/shida_csdn/article/details/79441694
注意:记住里go解压的路径和运行路径(即:GOROOT路径和GOPATH路径),在jenkins中添加go运行环境时用

二、nginx安装

参考:https://www.cnblogs.com/jerrypro/p/7062101.html

三、supervisor安装

参考:https://www.jianshu.com/p/7d7c00b220bf
其中包含了对go项目配置做了详细说明

四、安装Jenkins

参考:https://www.cnblogs.com/loveyouyou616/p/8714544.html

  • 由于在自动化部署过程中需要操作centOS相关文件夹,因此建议以jenkins以root身份启动,具体设置见

https://blog.csdn.net/wzqnls/article/details/78506149

五、jenkins安装go plugin、subversion plugin

进入【系统管理】->【插件管理】->【可选插件】或者在【系统管理】->【插件管理】右上方进行搜索安装即可

六、jenkins添加svn用户

由于我的项目是用svn做版本控制的,因此需要subversion plugin来进行代码管理,所以就需要用到svn账号密码,进入【凭据】->【系统】->【全局凭据】->【添加凭据】,如下图
图一图2图3

七、添加go path

进入【系统管理】->【全局工具设置】->【新增Go】,设置在centOS中GOROOT路径即可,我的go在/usr/local/go,具体路径以自己安装路径为准,如图:
图1图2

八、jenkins部署go

1、点击左边菜单栏【新建任务】->【输入名称】->选择【构建一个自由风格的软件项目】->确认
图12、选择项目,点击下拉角标,配置,如图:
在这里插入图片描述3、将项目设置为go运行路径,我的为/opt/applications/go/src,否则go build会找不到go path路径,如图:
在这里插入图片描述4、填写svn项目地址,选择拉去svn的账号,如图:
在这里插入图片描述5、构建环境,选择go环境,第七部配置过,如图:
在这里插入图片描述6、构建,选择执行shell,输入命令,如图:
在这里插入图片描述

cd /opt/applications/go/src/nana/service/user/api/cmd/
pwd
export GOROOT=/usr/local/go
GOROOT=/usr/local/go
PATH=/usr/local/go/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/go/bin
export GOPATH=/opt/applications/go
GOPATH=/opt/applications/go
go build user.go
mv /opt/applications/go/src/nana/service/user/api/cmd/user /opt/applications/service/user
supervisorctl start user

对上面shell命令大致解释一下:
【cd /opt/applications/go/src/nana/service/user/api/cmd/】:进入到go项目中的main入口文件目录,其中/opt/applications/go/src其实就是我们在centOS安装go以后,设置的GOPATH路径,具体以自己的为准
【pwd】:列出当前绝对路径

export GOROOT=/usr/local/go
GOROOT=/usr/local/go
PATH=/usr/local/go/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/go/bin
export GOPATH=/opt/applications/go
GOPATH=/opt/applications/go
】对当前项目临时设置go运行环境其中红色部分分别为自己在centOS上安装的go的环境配置路径。

到这你肯定会有一个疑问,为什么前面已经设置了全局go环境,为什么这里还需要设置,请原谅我不能回答具体所以然,在我们布置的过程中,如果不设置临时环境,那么在自动化编译时GOROOT会去/var/lib/jenkins(即jenkins的路径)下去找运行路径,这肯定是不对的,因为我们的项目其实在/opt/applications/go下面

【go build user.go】:对go进行打包
【mv /opt/applications/go/src/nana/service/user/api/cmd/user /opt/applications/service/user】:为了便于管理,我在此处将打包好的文件存放在了单独的目录来进行管理,避免与源码混淆,因此这一步操作就是将打包好后的二进制文件user移动到/opt/applications/service/user目录下进行管理,由于有的时候go需要通过flag加载配置文件,那么此时,配置文件也需要放在与/opt/applications/service/user相对的路径下,如我的user服务需要加载etc/config.json配置文件,注意:前面没有/。那么就需要在service下建立一个etc目录,并将config.json放在下面。

【supervisorctl start user】通过进程管理工具supervisorctl来启动二进制文件user,具体配置过程已经在【三】supervisor安装中有详细介绍

  • 到此,整个jenkins部署golang算结束了。这个过程需要耐心,切勿急躁,祝君顺利!
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/QQ243223991/article/details/83116127
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢