Linux环境下Docker部署Jenkins实现自动化
shell脚本#!/bin/bash#服务名称SERVER_NAME=JenkinsSpringBoot# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行JAR_NAME=jenkins-demo-0.0.1-SNAPSHOT# 源jar路径#/usr
一、安装Docker
1、在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上
查看版本以及系统位数
lsb_release -a
2、用yum安装Docker
2.1 查看是否已安装docker列表
yum list installed | grep docker
2.2 安装Docker
yum -y install docker
2.3 启动Docker
systemctl start docker
2.4 查看Docker服务状态
二、Docker中安装Jenkins
1、使用Docker安装Jenkins
docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
2、访问Jenkins
http://ip:8080
3、切换到Docker环境中的Jenkins容器中
查询Jenkins容器ID
docker ps
进入Jenkins容器(容器ID为上图标红)
docker exec -it a080ade07ba2 /bin/bash
4、查询Jenkins密码
cat /var/jenkins_home/secrets/initialAdminPassword
5、选择【安装推荐的插件】
6、创建新用户
7、Jenkins全局工具配置
配置jdk,默认Docker容器安装的版本较高,所以选择jdk1.8
配置Maven
8、安装Jenkins对应的Maven插件
插件名称 Maven Integration
安装并重启 Jenkins
三、Jenkins实现Springboot项目自动部署
1、创建一个任务 JenkinsSpringBoot
2、配置git账号(添加git账号密码)
3、配置项目打包
clean install
4、点击立即构建
第一次构建需要下载依赖,耗费时间较长
4、配置shell脚本
上一步【立即构建】只是把项目打包了,并不会自动运行,所以需要配置运行脚本
shell脚本
#!/bin/bash
#服务名称
SERVER_NAME=JenkinsSpringBoot
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行
JAR_NAME=jenkins-demo-0.0.1-SNAPSHOT
# 源jar路径
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/JenkinsSpringBoot/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/JenkinsSpringBoot/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"
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &
5、点击【立即构建】
点击圈中的地方可以看控制台日志
6、访问http://ip:9090/index (git项目访问路径)
发现并不能访问
因为docker容器中的端口号没有映射,在本地浏览器是无法访问容器内项目
四、容器中映射项目端口号
1、重启docker容器
退出Jenkins容器:exit
重启docker容器:systemctl restart docker
2. 清空未运行的容器
docker rm $(sudo docker ps -a -q)
3、配置docker容器中的git项目端口号映射,并重启
docker run -p 8080:8080 -p 9090:9090 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
其中 -p 9090:9090 为git项目的端口号
4、登录Jenkins并构建JenkinsSpringboot任务
4、访问http://ip:9090/index
五、Jenkins时间与服务器时间同步
在构建历史中可以发现时间与服务器不统一
设置Jenkins时间
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
以上就是Jenkis自动化部署项目
更多推荐
所有评论(0)