基于Docker安装Jenkins环境

 

1.使用docker 安装jenkins

docker run -p 8080:8080  -p 50000:50000 -v jenkins_data:/var/jenkins_home --name jenkins -idt  jenkinsci/blueocean

查找目录命令

find / -name jenkins_data -depth

2.访问jenkins地址 8080

docker linux 实现自动化部署 docker自动化部署实战_jar

 

注意:第一次启动的时候正在加载jenkins大概会等待3-10分钟。

3.解锁jenkins

docker linux 实现自动化部署 docker自动化部署实战_spring_02

 

docker exec -it 7f485bd95c3b  /bin/bash 进入jenkins容器 

cat /var/jenkins_home/secrets/initialAdminPassword

docker linux 实现自动化部署 docker自动化部署实战_spring_03

docker linux 实现自动化部署 docker自动化部署实战_jar_04

 

大概需要等待3-10分钟

创建新的用户

docker linux 实现自动化部署 docker自动化部署实战_spring_05

 

docker linux 实现自动化部署 docker自动化部署实战_jar_06

 

 

Jenkins全局工具配置

进入到jenkins容器中 echo $JAVA_HOME 获取java环境安装地址

 

JDK环境安装

docker linux 实现自动化部署 docker自动化部署实战_jar包_07


Maven环境安装

 

docker linux 实现自动化部署 docker自动化部署实战_spring_08

安装Jenkins对应Maven插件

找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本  

插件名称 Maven Integration

 

docker linux 实现自动化部署 docker自动化部署实战_spring_09

docker linux 实现自动化部署 docker自动化部署实战_spring_10

 

Jenkins实现Springboot项目自动部署

  1. 新建一个发布任务

 

  1.  配置任务git账号密码

 

 

   3.项目打包

 

 

   clean install  -Dmaven.test.skip=true

  1. 点击立即构建 

 

 第一次构建可能耗时比较长,因为需要下载一些相关依赖jar包

 

  Jenkins启动成功之后执行shll脚本

#!/bin/bash
#服务名称
SERVER_NAME=mayikt_springboot
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行  
JAR_NAME=mayikt_springboot-0.0.1-SNAPSHOT
# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/mayikt_springboot/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/mayikt_springboot/target
 
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
kill -9 $id  
echo "killed $id"  
done
echo "结束进程完成"
 
#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar
 
java -jar $JAR_NAME.jar

Jenkins启动SpringBoot后,停止转圈

将springboot启动方式设置为后台启动即可

#!/bin/bash
#服务名称
SERVER_NAME=mayikt_springboot
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行  
JAR_NAME=meitedu_springboot-0.0.1-SNAPSHOT
# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/meitedu_springboot/target/
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/meitedu_springboot/target/
 
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
kill -9 $id  
echo "killed $id"  
done
echo "结束进程完成"
 
#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar
 
 
 
BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  &

 

部署的项目映射8090端口(项目8090,jenkins8080)

  1. 重启容器

systemctl restart  docker  

  1. 删除旧的jenkins容器

docker rm jenkins容器id

重新运行

docker run -p 8080:8080 -p 8090:8090 -p 50000:50000 -v jenkins_data:/var/jenkins_home --name jenkins -idt  jenkinsci/blueocean

 

最主要是思路 灰度发布