通过Shell脚本一键部署GO项目到服务器
引言
如何优雅的部署go项目到服务器呢?
我们可以通过shell脚本把以下操作进行封装:代码同步,打包,编译,重启进程,启动服务;一键执行shell,避免重复劳动。
脚本一键操作
执行效果示例
是不是非常友好且高效!
部署流程
- 本地把最新代码提交到git
- 在服务器切换到shell脚本目录下,运行shell脚本,一键部署
./setup.sh
脚本代码
- 说明:下面的 RunningManageServer 是我指定的module名称,替换成您自己的二进制项目文件即可。
RED_COLOR='\E[1;31m' #红
GREEN_COLOR='\E[1;32m' #绿
YELOW_COLOR='\E[1;33m' #黄
BLUE_COLOR='\E[1;34m' #蓝
PINK='\E[1;35m' #粉红
RES='\E[0m'
echo -e "${GREEN_COLOR}****后台管理系统:开始执行自动化部署****${RES}\n\n"
echo -e "${YELOW_COLOR}---step1:合并代码---${RES}"
git pull origin master
echo -e "${BLUE_COLOR}合并代码成功${RES}\n"
echo -e "${YELOW_COLOR}---step2:编译---${RES}"
go build
echo -e "${BLUE_COLOR}编译完成${RES}\n"
echo -e "${YELOW_COLOR}---step3:更改权限---${RES}"
chmod -R 777 RunningManageServer
echo -e "${BLUE_COLOR}更改权限完成${RES}\n"
echo -e "${YELOW_COLOR}---step4:杀掉进程并且运行---${RES}"
i1=`ps -ef|grep -E "RunningManageServer"|grep -v grep|awk '{print $2}'`
echo -e "${BLUE_COLOR}杀掉进程$i1${RES}\n"
kill -9 $i1 && nohup ./RunningManageServer >/dev/null 2>&1 &
i2=`ps -ef|grep -E "RunningManageServer"|grep -v grep|awk '{print $2}'`
echo -e "${GREEN_COLOR}****部署成功,部署的进程ID为:$i2${RES}****"
注意
shell脚本存放在哪里都没有关系,执行脚本的时候切换到对应目录执行就可以了。
手动分步操作
下面再说一下如果不使用脚本的话,如何一步一步手动操作,部署项目到服务器
部署项目
- 开发环境重新build项目(Mac环境的打包语法)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
- 查找指定端口的进程 9001是端口号
netstat -tunlp|grep 9001
- 结束之前的进程,开启新进程启动go服务
- 4543是要结束的进程
- singo是二进制文件名
kill -9 4543 && nohup ./singo > nohup.log 2>&1 &
跨平台编译之:windows
set CGO_ENABLED=0 //禁用CGO
set GOOS=linux //目标平台为linux
set GOARCH=amd64 //目标处理器架构是amd64
go build -o name //编译可执行文件到当前目录 (-o:自定义文件名)
跨平台编译之:Mac
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
其他问题
- go项目运行之后,修改.env文件不会立即生效,需要重启go服务才会生效
- go项目运行之后,修改config.ini配置文件会立即生效,无需重启go服务
- 我们根据自己的项目需求,灵活的把配置参数写到合适的配置文件中
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanfbagg
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01