使用jenkins部署前后端分离应用
个人博客地址预览:
www.ciliblog.com
环境(软件)准备
1、需要安装docker
2、需要安装docker的nginx
3、需要安装Java环境,并配置环境变量
4、需要安装node并配置环境变量
5、需要安装maven并配置环境变量
6、需要安装jenkins,并更换镜像源
7、虚拟机安装git
8、需要gitee账号,或GitHub账号
以上环境(软件)可以参考【10分钟拥有虚拟机。。。】这篇文章
https://mp.weixin.qq.com/s/eh-_ysXrkn1lz2nzMf9sRw
或
https://blog.youkuaiyun.com/qq_17369545/article/details/125733469
服务器访问不了处理
1、需要开启安全组
2、需要防火墙放行端口
作用域是public,开放tcp协议的8080端口,一直有效
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
需要在jenkins里面配置好maven、java、环境变量
CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
JAVA_HOME /usr/java/jdk1.8.0_231
M2_HOME /usr/local/maven
PATH $JAVA_HOME/bin:$PATH
PATH+EXTRA $M2_HOME/bin
添加代码下载地址
1、新建任务
2、源码管理 ,url填写仓库地址,Credentials新增一个填写gitee的登录账号密码
jenkins初尝
1、配置里(在源码管理右侧),选择增加构建步骤,选择执行shell,
2、echo "hello world jenkins 小伙子"
3、点击应用
4、点击构建
5、查看构建记录
6、点击控制台输出
7、可以看到拉取代码,打印这句话。
构建部署前端(路径都用绝对路径)
1、目标:将打包好的dist目录下的东西放到nginx的html文件夹里面就行
2、脚本(构建里新增 执行shell)
cd blog-view
npm install
rm -rf ./dist/*
npm run build
rm -rf /mydata/nginx/html/*
cp -rf ./dist/* /mydata/nginx/html
chown -R jenkins:jenkins /mydata/nginx/html
3、点击执行构建
构建部署后端(路径都用绝对路径)
1、目标,将jar包使用Java命令启动起来
2、脚本
(构建)
cd vueblog
mvn clean package
cp -rf ./target/*.jar /usr/local/cili_blog
sh /usr/local/cili_blog/stop.sh
(构建后)
sh /usr/local/cili_blog/start.sh
shell脚本文件内容
start.sh
export BUILD_ID=dontKillMe
nohup java -jar /usr/local/cili_blog/vueblog-0.0.1-SNAPSHOT.jar > logTest.log 2>&1 &
stop.sh
ps aux | grep vueblog-0.0.1-SNAPSHOT.jar | grep -v "grep" | awk '{print "kill -9 "$2}' | sh
注意:
jenkins会将shell启动的子进程kill掉,因此需要在start脚本中特殊处理一下(dontkillMe)