安装Jenkins,并部署vue前端,java后台
2022/6/10 1:21:08
本文主要是介绍安装Jenkins,并部署vue前端,java后台,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Jenkins
安装方式为Docker或war包。
Publish Over SSH 插件下架后,Docker部署加ssh远程执行目前没找到合适的替代方案。
我选择的方案为:jenkins和应用服务器安装在同一台机器上,jenkins以war包部署,构建完项目后执行shell脚本运行项目。
war包安装
Jenkins官网下载地址
两种运行方式
- 打开终端命令行,找到war所在的路径运行
java -jar jenkins.war --httpPort=9080
- 将war包拷贝到Apache Tomcat的webapps文件下,运行bin目录下的startup.sh
Docker安装
最新版
docker pull jenkins/jenkins:lts
查看Jenkins镜像
docker images
安装启动Jenkins容器
-v 宿主机目录:docker内目录 docker run -d -p 9988:8080 -p 50000:50000 \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/mv:/usr/bin/mv \ -v /asoft/java/jdk1.8.0_161:/asoft/java/jdk1.8.0_161 \ -v /asoft/maven/apache-maven-3.8.4:/asoft/maven/apache-maven-3.8.4 \ -v /asoft/maven/mvn_repository:/asoft/maven/mvn_repository \ -v jenkins:/export/service/jenkins_home \ -v /etc/localtime:/etc/localtime \ --name jenkins jenkins/jenkins:lts #参数简介 -v /usr/bin/docker:/usr/bin/docker 有了这个配置在docker容器内部可以使用docker命令 -v /usr/bin/mv:/usr/bin/mv 有了这个配置在docker容器内部可以使用mv命令 -v /usr/java/jdk1.8.0_131/bin/java:/usr/java/jdk1.8.0_131/bin/java,这个配置可以再在docker容器内部使用java命令(直接使用宿主机的java) -v /usr/java/jdk1.8.0_131:/usr/java/jdk1.8.0_131 这个配置会在docker容器创建/usr/java/jdk1.8.0_131目录,并映射到宿主机的java_home目录 -v /export/service/apache-maven-3.3.9:/export/service/apache-maven-3.3.9这个配置会在docker容器创建/export/service/apache-maven-3.3.9目录,并映射到宿主机的maven_home目录 /export/service/repository:/export/service/repository这个配置会在docker容器创建/export/service/repository目录,并映射到宿主机的/export/service/repository目录 -v /etc/localtime:/etc/localtime 使用宿主机的时间(宿主机和容器时间同步) -d 后台运行镜像 -p 9988:8080 将镜像的8080端口映射到服务器的9988端口 -p 50000:50000 将镜像的50000端口映射到服务器的50000端口 --name jenkins 给容器起一个别名 为什么要挂载(映射)目录:docker通过镜像创建并启动容器,一个容器就是一个独立隔离的沙箱,所以并不能识别服务器上的环境配置,需要我们在启动容器时通过-v参数命令将服务器目录挂载到docker容器指定目录!拿jenkins举例来说,如果你是用docker运行的jenkins,那么是不识别你服务器上配置的jdk环境和maven环境的,你在jenkins里系统配置中去填写你服务器上的jdk目录和maven目录以及配置文件目录,后面项目构建是肯定会报错不识别的。jenkins所在的容器是docker某个具体容器,它只能识别出这个容器里的东东,容器自己有一套独立完整的目录,可以通过命令 docker exec -it containerID /bin/bash 进入指定的容器id查看(containerID换成你的docker容器id)。 #如果目录挂载完成,启动了容器,又想修改挂载怎么办? 参考:https://blog.csdn.net/zedelei/article/details/90208183
查看Jenkins启动情况
docker ps | grep jenkins
配置 Jenkins
注意:因为我们是docker版的jenkins,所以这个路径不是服务器的路径,而是容器内的路径。我们可以通过如下命令从容器中获取到初始化密码。
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
在页面输入密码,点击Continue,进入插件安装页面。安装推荐插件就好。
安装插件
gitee或svn
maven
nodejs
创建task
- General选择
丢弃旧的构建
或根据实际情况自行选择 - 源码管理选择svn或git,输入地址,选择/创建Credentials,使用版本管理工具的用户和密码
- 构建触发器根据实际情况自行选择,远程构建等
- Build -> Root POM -> pom.xml
- Build -> clean install -> clean install
- Post Step参考以下脚本
后台启动脚本
jenkins execute shell
#jenkins执行完脚本后,会kill掉进程,导致项目启动又被kill,在脚本前添加`BUILD_ID=dontKillMe` BUILD_ID=dontKillMe /asoft/springboottest/shfile/downloadjar.sh #或直接再此运行脚本内的脚本,需要加上set +e以忽略 Shell 步骤中的故障
在本机位置新建.sh脚本
#!/bin/bash #获得当前的时间 ctime=$(date +%Y%m%d%H%M%S) #确保/backup目录存在 mkdir -p /asoft/springboottest/backup #备份/var/log目录 cp /asoft/springboottest/download-1.0-SNAPSHOT.jar /asoft/springboottest/backup/${ctime}_download-1.0-SNAPSHOT.jar #删除7天前的备份文件 find /asoft/springboottest/backup -mtime +7 -type f -name "*.jar" -exec rm -rf {} \; # kill目标进程 ps -aux | grep download-1.0-SNAPSHOT.jar | awk '{print $2}' | xargs kill rm -rf /asoft/springboottest/download-1.0-SNAPSHOT.jar #把构建后的文件copy至目标 cp /root/.jenkins/workspace/task001/target/download-1.0-SNAPSHOT.jar /asoft/springboottest/download-1.0-SNAPSHOT.jar #启动jar nohup java -jar /asoft/springboottest/download-1.0-SNAPSHOT.jar > /asoft/springboottest/download-log.file 2>&1 &
前台启动脚本
直接写在jenkins任务的execute shell 里即可
# 进入Jenkins工作空间下hxkj项目目录 cd /root/.jenkins/workspace/test003 npm -v # 下面的命令只需要执行一次,后续可以删除 ## # npm切换为淘宝源 npm config set registry http://registry.npm.taobao.org/ #安装依赖 npm install # 打包 npm run build #获得当前的时间 ctime=$(date +%Y%m%d%H%M%S) #备份 cp -r /usr/share/nginx/html /usr/share/nginx/back/${ctime}_html # 删除html,复制到相应路径 rm -rf /usr/share/nginx/html cp -r /root/.jenkins/workspace/test003/dist/ /usr/share/nginx/html # 删除html,复制到相应路径 rm -rf /usr/share/nginx/html cp -r /root/.jenkins/workspace/test003/dist/ /usr/share/nginx/html
扩展 scp 上传文件命令
#scp 上传命令 scp cd /var/jenkins_home/workspace/task001/target/download-1.0-SNAPSHOT.jar root@192.168.48.130:/asoft/springboottest
这篇关于安装Jenkins,并部署vue前端,java后台的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南