登录
首页 >  Golang >  Go问答

golang生产上如何部署发布的?配合jenkins的一个流程是怎样的

来源:SegmentFault

时间:2023-01-07 21:11:11 107浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《golang生产上如何部署发布的?配合jenkins的一个流程是怎样的》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

熟悉PHP和jenkins的一套流程,对静态语言不太熟悉想要了解下Golang在实际项目中的部署发布流程?只是单应用,没有用到docker

go的项目中包管理是使用Go_Module的,代码库中需要上传vendor文件夹吗?还是说在打包的服务器配置好环境后,jenkins拉完代码后执行go mod download ,go mod vendor最后在build后把二进制发到其他服务器。 描述的可能不准确,请教一下大家大致的一个流程。

正确答案

编译 & 发布

主要就两点,第一要静态编译,将GOOS和GOARCH设置对应的系统,然后编译那个系统下的二进制文件;第二单文件可以直接传文件,多文件就删除多余的文件保留运行需要的文件,然后tar包压缩再传输。传输直接用Jenkins ssh插件传,然后解压执行下重启命令或脚本;或者使用ssh传递到发布包中间存储服务器,然后发布平台再去操作。

# 或者插件
git clone .../xxx
# 静态编译
cd xxx
GO111MODULE=on CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags "-s -w" -o app app.go 
rm -rf xx xx2
# 压缩包
cd -
tar -zcvf xxx.tar.gz xxx

依赖

依赖需要看自己依赖管理方式,个人推荐使用goproxy server搭建内部包缓存服务器。上传vendor是很可靠的方法,第三方依赖有些太不稳定了。

今天带大家了解了go、jenkins、后端的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表