
docker安装jenkins 并实现自动化部署Springboot多模块 超详细!!
Jenkins安装+Springboot项目完整部署流程(超详细 亲测有效 !!!!)
前言
!!!!跟着我的步骤来没问题!!!!
1. 安装jdk
#安装
yum install -y java-1.8.0-openjdk.x86_64
#查看版本
java -version
2. docker安装Jenkins
2.1 创建文件
cd /
mkdir -p /mydata/jenkins/jenkins_home
mkdir -p /mydata/jenkins/localtime
2.2 拉取镜像创建容器
docker pull jenkins/jenkins:2.414.2
docker run --restart=always -u root -p 8080:8080 -p 50000:50000 -v /mydata/jenkins/jenkins_home:/var/jenkins_home -v /mydata/jenkins/localtime --name jenkins jenkins/jenkins:2.414.2
2.3 初始化Jenkins
获取密码
docker logs jenkins
将上述密钥输入进去
2.4 Jenkins安装步骤
选择推荐的插件
3. 安装Maven
3.1 通过上传的形式安装
1.我使用的是apache-maven-3.6.3.tar.gz(可以将本地的压缩成这个格式上传)
2.上传到刚刚创建的文件夹 mydata里面
3.2 maven的挂载
tar -zxvf /mydata/apache-maven-3.6.3.tar.gz
将文件解压到/mydata/jenkins/jenkins_home下
cp -r /mydata/apache-maven-3.6.3 /mydata/jenkins/jenkins_home
3.3 maven仓库的设置
这个要注意了,本地上传的要注意自己的仓库地址
<localRepository>/mydata/jenkins/jenkins_home/apache-maven-3.6.3/m2</localRepository>
4.Jenkins全局配置
路径:Dashboard > Manage Jenkins > Tools
4.1 maven配置 (都是容器内部的位置)
文件路径在jenkins容器当中
跟着我的步骤来是和我一样的位置(也就是你挂载的那个所在目录)
/var/jenkins_home/apache-maven-3.6.3/conf/settings.xml
#进入容器
docker exec -it jenkins bash
往下滑继续配置Maven
获取maven位置:/var/jenkins_home/apache-maven-3.6.3
4.3配置SSH
路径:Dashboard > Manage Jenkins > System
注意如果没有 Publish over SSH 需要去下载
#查看地址
ifconfig
1.SSH Server Name 填你虚拟机IP或用户名
2.Hostname 填你的虚拟机IP
3.Username 默认root
4.Remote Directory 填 /
5.保存
4.3 构建自由风格
4.4 添加gitee仓库地址
4.5 添加gitee账号和密码(只写账号密码)
4.6 Build Steps设置
1.maven 选择刚刚的全局变量配置
2.目标填 clean install
3.pom 是git所拉取的代码存放在jenkins容器内部的位置
/var/jenkins_home/workspace/xxx/pom.xml
设置SSH
除了shell命令和我一样
以下2点 注意事项(写自己的挂载目录即可,跟着我的步骤一般和我一样)
1.cp /mydata/jenkins/jenkins_home/workspace/jy/jy-hall/jy-service/target/jy-service-1.0-SNAPSHOT.jar /mydata/jenkins/jenkins_home/jar/
2.nohup java -Xms300m -Xmx300m -jar /mydata/jenkins/jenkins_home/workspace/jy/jy-hall/jy-service/target/$APP_NAME >$LOG_NAME 2>&1 &
cp /mydata/jenkins/jenkins_home/workspace/jy/jy-hall/jy-service/target/jy-service-1.0-SNAPSHOT.jar /mydata/jenkins/jenkins_home/jar/
#!/bin/bash
APP_NAME=jy-service-1.0-SNAPSHOT.jar
LOG_NAME=jy-service-1.0-SNAPSHOT.log
pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`
function is_exist(){
pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`
if [ -z ${pid} ]; then
String="notExist"
echo $String
else
String="exist"
echo $String
fi
}
str=$(is_exist)
if [ ${str} = "exist" ]; then
echo " 检测到已经启动的程序,pid 是 ${pid} "
kill -9 $pid
else
echo " 程序没有启动了 "
echo "${APP_NAME} is not running"
fi
str=$(is_exist)
if [ ${str} = "exist" ]; then
echo "${APP_NAME} 已经启动了. pid=${pid} ."
else
source /etc/profile
BUILD_ID=dontKillMe
nohup java -Xms300m -Xmx300m -jar /mydata/jenkins/jenkins_home/workspace/jy/jy-hall/jy-service/target/$APP_NAME >$LOG_NAME 2>&1 &
echo "程序已重新启动..."
fi
5. 运行效果
我们只需要提交代码即可不需要,不需要执行java -jar xxxx.jar
6. 注意事项
springboot的启动类一定要加上这个不然会报错xxxx.jar中没有主清单属性
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>xxx.xxx.xxxApplication</mainClass>
<!-- 不能开 <skip>true</skip>-->
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
更多推荐
所有评论(0)