Jenkins可以实现自动化部署项目,如上图所示,jenkins可以连接代码管理平台,下载代码,进行项目打包及部署。下面我们基于docker部署jenkins,并实现项目的自动化部署。
1.安装启动jenkins
#1.拉取Jenkins镜像
[root@localhost ~]# docker pull jenkins
#2.启动jenkins容器
[root@localhost ~]#docker run -it -d -p 8081:8081 -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
查看启动日志
[root@localhost ~]# docker logs 4c193b44d91e >jenkins2.log 2>&1
启动成功后可以看到这里有显示admin用户的密码
2.登录jenkins初始化配置
#1.登录Jenkins
1.输入默认生成的密码
#2.安装插件
选择安装插件,建议初学者安装推荐的插件
等待所有插件安装完成,可能会耗时很久,而且会出现安装失败的情况。
选择系统管理Manage Jenkins—>选择插件管理Manage Plugins-->选择高级Advanced,修改Update Sie。【详细的Jenkins的镜像地址查询:http://mirrors.jenkins-ci.org/status.html】
如果依然超时下载失败,可以自行下载.hpi文件,并上传
详细的解决方案可以参考https://www.cnblogs.com/sxdcgaq8080/p/10489326.html
#3.创建用户
#4.配置jenkinsURL
接着我们就进入了jenkins主页
3.配置jenkins运行环境
#1.配置jdk
进入主页,选择ManageJenkinss,选择Global Tool Configuration
选择JDK,填写jdk的名称及安装目录,取消勾选自动安装
Jenkins默认已经安装了jdk,进入Jenkins容器,可以查看Jdk版本,及安装目录
docker exec -it 8ed4f97783c8 /bin/bash
echo $JAVA_HOME
#2.安装maven
选择maven安装配置项,填写相关信息
安装完成后,到jenkins容器中修改maven的settings.xml配置文件,配置阿里云镜像地址
#3.安装maven插件
选择manage jenkins-->选择Manage plugins,点击Available,搜索maven integration,选择安装后重启jenkins。
4.使用jenkins自动部署项目
在配置自动部署前,我们需要先将项目部署到Git平台,如码云gitee、gitlab、github等。
#1.新建任务
选择新建任务New Item,输入项目名,选择maven项目
配置Git项目的地址
项目构建
配置项目自动运行脚本
#!/bin/bash
#服务名称
SERVER_NAME=meite_mayi
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行
JAR_NAME=meite_mayi-1.0-SNAPSHOT
# 源jar路径
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/meite_mayi/target/
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/meite_mayi/target/
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" |grep jar| awk '{print $1}'`
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 &
#2.为项目的端口配置映射
由于jenkins容器运行时只配置了自身的端口,如果项目部署在jenkins容器里面,容器外部也无法访问项目的端口。因此我们需要为项目的端口配置映射
第一种方法是停掉jenkins容器并删除后,重新启动jenkins容器,添加项目的端口
docker stop 1358f3f7ce75
docker rm 1358f3f7ce75
docker run -it -d -p 8081:8081 -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
第二种方法是修改hostconfig.json和config.v2.json文件,添加项目的端口,然后重启docker
docker inspect 容器id,可以查看容器的完整id
然后进入到 /var/lib/docker/containers/[容器ID]/目录,可以看到hostconfig.json文件和config.v2.json文件
修改hostconfig.json文件,找到portbindings,增加项目的8081端口
修改config.v2.json文件,增加项目端口8081,这个文件有两处需要修改,
修改完成后重启docker
#3.立即构建项目
配置完成后,点击立即构建Build Now
选择本次构建,点击控制台输出Console Output,即可看到项目构建情况
项目启动完成后即可在外部进行访问了