文章目录
如何一键部署
1.后端
1.1 拉取代码
我git部署是基于前两篇文章,centos系统环境搭建(二十一)——安装git并且配置ssh拉取github代码和centos系统环境搭建(二十二)——git进阶,基于前文可知,首先,后端代码保存在
cd /srv/tencent/code/tencent
如果我们在此文件夹下执行拉取命令。
git pull
这就会将后端代码更新至最新。
1.2 打包
1.2.1 如果打包没问题,只看这部分即可
有了最新的源码以后,就可以执行打jar包操作了。
这是一个spring boot项目,可以看到我的项目结构如下
[root@vm-4-17-centos tencent]# ll
total 52
-rw-r--r-- 1 root root 35149 nov 21 15:09 license
-rw-r--r-- 1 root root 4157 nov 21 15:09 pom.xml
-rw-r--r-- 1 root root 3828 nov 21 15:09 readme.md
drwxr-xr-x 4 root root 4096 nov 21 15:09 src
如果我们在此文件夹/srv/tencent/code/tencent
下执行打包命令。
mvn clean package
成功后,我们的/srv/tencent/code/tencent/target
下就会有一个打好的jar包了。
cd /srv/tencent/code/tencent/target
1.2.2 maven有问题看这一部分
若想执行maven打包,你要确定你的maven能用,电脑一定要配置的有java_home
,你可以先用这个命令验证一下有没有配置。
echo $java_home
如果你没问题这部分你不用看,有问题的话可以看看我这部分,稍微讲一下maven如何正确配置。首先,基于本系列的文章centos系统环境搭建(五)——centos7安装maven,你已经用压缩包的方式安装了maven。然后如何配置java_home
呢?
1.2.2.1 安装jdk
首先,基于我前文centos系统环境搭建(四)——centos7安装java可知,我们最早用yum install -y java-1.8.0-openjdk
安装的jdk,这样安装其实是只有jre,并没有jdk。因此,我们应该先安装jdk。
yum install -y java-1.8.0-openjdk-devel
1.2.2.2 jdk路径寻找,使用命令
sudo alternatives --config java
返回
[root@vm-4-17-centos /]# sudo alternatives --config java
there is 1 program that provides 'java'.
selection command
-----------------------------------------------
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64/jre/bin/java)
1.2.2.3 由此可知,jdk路径为
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64
1.2.2.4 编辑环境变量文件
vim /etc/profile
末尾写上
export java_home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64
export jre_home=$java_home/jre
export classpath=$java_home/lib:$jre_home/lib:$classpath
export path=$java_home/bin:$jre_home/bin:$path
1.2.2.5 刷新全局变量
source /etc/profile
1.2.2.6 验证
echo $java_home
然后回到文章1.2.1部分去重新打包。
2.前端
拉取代码
我git部署是基于前两篇文章,centos系统环境搭建(二十一)——安装git并且配置ssh拉取github代码和centos系统环境搭建(二十二)——git进阶,由前文可知,前端代码保存于
cd /srv/tencent/code/page/dist
更新代码
git pull origin main
3.一键部署
思考一下,整个步骤就这么几步。
- git拉取后端代码。
- 打包。
- 终止旧服务的jar包。
- 复制新jar包替换旧jar包。
- 启动新jar包。
- git拉取前端代码。
- 将新的dist文件夹覆盖旧的dist文件夹。
- 重启nginx。
因此,我们的bash脚本如下。关于关闭jar包和启动jar包部分,还有nginx部分,不明白的可以看这两篇,centos系统环境搭建(十一)——centos7安装使用nginx并部署前后端分离项目和centos系统环境搭建(二十三)——运行java服务。
#!/bin/bash
# 后端代码更新和打包
cd /srv/tencent/code/tencent
git pull
mvn clean package
# 停止旧的后端服务
cd /srv/tencent/server
./stop_jar.sh
# 替换jar包
cp /srv/tencent/code/tencent/target/tencent-2023.09.13.jar /srv/tencent/server/tencent-2023.09.13.jar
# 启动新的后端服务
cd /srv/tencent/server
./run_jar.sh
# 前端代码更新
cd /srv/tencent/code/page/dist
git pull origin main
# 替换前端文件夹
rsync -av --delete /srv/tencent/code/page/dist/ /srv/tencent/page/dist/
# 重新加载 nginx
cd /usr/local/nginx/sbin
./nginx -s reload
将脚本放在/srv/tencent
下
cd /srv/tencent
新建部署脚本
vim deploy.sh
赋予执行权限
chmod +x deploy.sh
执行
./deploy.sh
今后,你只需要更新一下你的github仓库,然后运行脚本,就会更新你的服务器服务!
发表评论