提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
使用jenkins远程部署项目
主要流程:
(2)linux服务器拉取jenkins docker镜像.
(2)创建jenkins容器
(3)配置jenkins
一、使用步骤
1.拉取jenkins的docker镜像
docker pull jenkins/jenkins:lts
2.创建jenkins容器
sudo docker run -d \
-p 8090:8080 \
-p 50000:50000 \
-v /var/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--name jenkins \
--privileged=true \
jenkins/jenkins:lts
记住8090是访问端口,8080是docker容器内端口,需要做个映射。然后-v是将容器内的目录与本机目录进行挂载同步。然后sudo docker stop jenkins启动容器。
3.jenkins配置
首先安装所需插件,可以网上搜索
(1)填写SSH,测试连接,这是远程服务器地址(就是需要部署的服务器地址)
(2)配置maven的setings路径,是你本机的maven路径
(3)本机的JDK路径
(4)本机Git路径
(5)maven路径
4.配置项目
(1)配置jdk(本机JDK路径)
(2)填写git仓库地址
(3)构建触发器
(4)填写打包方式
(5)填写构建完成后的部署脚本
这里是一大坑,只能填写相对路径。workspace在本机是根路径,所以Source files是workspace下的路径。Remove prefix也是相对路径,去掉Source files的前缀,只留下jar文件。
Remote directory填写你远程服务器的目录地址,也就是你需要把本机jar部署到的远程服务器地址。
然后填写命令脚本,根据自己的情况修改:
#!/bin/bash
# 服务名称
SERVER_NAME=**************通常是jar包的路径
echo "查询进程id-->$SERVER_NAME"
PID=$(ps -ef | grep "$SERVER_NAME" | grep -v "grep" | awk '{print $2}')
echo "得到进程ID: $PID"
echo "结束进程"
for id in $PID
do
kill $id
echo "killed $id"
done
echo "结束进程完成"
cd /root/jenkins/lightv-deploy/linux_deploy/services/jars
# 后台启动
nohup /root/jenkins/lightv-deploy/linux_deploy/services/jdk-21.0.3/bin/java -jar $SERVER_NAME --server.port=18080 &
echo "应用已启动"
最后执行的命令如果在本机执行一定不要8080,因为容器内是8080会冲突,尽量设置端口号
我这里设置成:
--server.port=18080
然后jenkins远程服务就成功了