后端golang项目一键打包部署方案
作者:锋行天下
本文介绍了如何为Go语言Gin项目添加一键打包并自动部署功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
之前写过前端一键部署的方案 # 一条命令实现打包并自动部署 但是后端项目一直没有加这个功能,今天给它补上
- 项目类型:go语言gin项目单体服务
- 服务器类型:华为云轻量级服务器
- 本地开发机:macos 系统
一:自动打包并上传部署的脚本
在项目根目录新增deploy.sh文件,并给可执行权限
#!/bin/bash # ============ 只改这里 改成你自己的 ============ SERVER_IP="xxx.xxx.xxx.xxx" SERVER_PORT=22 SERVER_USER="root" SERVER_DIR="/root/yun120" APP_NAME="yun120" # ============================================== echo "===== 1. 编译 Linux amd64 可执行文件 =====" CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o $APP_NAME . echo "===== 2. 远程停止 systemd 服务 =====" ssh -p $SERVER_PORT $SERVER_USER@$SERVER_IP "systemctl stop yun120" echo "===== 3. 上传新程序到服务器 =====" scp -P $SERVER_PORT ./$APP_NAME $SERVER_USER@$SERVER_IP:$SERVER_DIR/ echo "===== 4. 加执行权限 + 启动服务 =====" ssh -p $SERVER_PORT $SERVER_USER@$SERVER_IP "chmod +x $SERVER_DIR/$APP_NAME && systemctl start yun120" echo "===== 5. 查看服务运行状态 =====" ssh -p $SERVER_PORT $SERVER_USER@$SERVER_IP "systemctl status yun120 --no-pager" echo -e "\n✅ 全自动部署完成!"
我的项目文件夹是yun120,可执行文件也是 yun120,每次想打包部署项目时候执行这个文件即可, 但是有个问题,会频繁让你输入服务器密码,接下来
二:配置 SSH 免密登录
- 在电脑终端执行(一路回车,不要输入任何东西)
ssh-keygen -t ed25519
- 把密钥传到服务器(只需要输一次密码)
ssh-copy-id root@你的服务器IP
- 测试是否免密(不用输密码直接登录 = 成功)
./deploy.sh
至此,go项目一键打包部署搞定,以前更新项目要先构建项目,登陆服务器停掉服务,上传可执行文件覆盖以前文件,命令开启项目,现在只需一步搞定
到此这篇关于后端golang项目一键打包部署方案的文章就介绍到这了,更多相关golang一键打包部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
