1、下载镜像
1.一定要在Jenkins官网查找最新版本,官网地址:https://jenkins.io/download/
2.选择LTS下面长久支持版本下的最新版本docker,例如:docker安装包 或者 windows安装包或者其他
docker pull jenkins/jenkins
2、创建一个Jenkins的配置目录,并且挂载到docker 里的Jenkins目录下
mkdir -p /usr/local/jenkins/jenkins_home
3、修改目录权限(很重要!)
chown -R 1000 /usr/local/jenkins/jenkins_home
4、启动(注意开放所有端口)
docker run -p 8088:8080 -p 50000:50000 -v /usr/local/jenkins/jenkins_home:/var/jenkins_home --name jenkins -d jenkins/jenkins
5、访问
http://127.0.0.1:8088
6、进入容器查看密码
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
复制出密码然后退出
点击 Install suggested plugins
等待安装完毕
7、JDK配置,进入容器内部查看jenkins自带的jdk安装路径
docker exec -it jenkins /bin/bash
echo $JAVA_HOME
系统管理->Global Tool Configuration
8、Maven环境安装
9、安装Jenkins对应Maven插件,找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本
插件名称 Maven Integration,安装完成后重启jenkins勾选上。
10、Jenkins实现Springboot项目自动部署
流程:
1)将项目发布到GitHub上。
2)新建一个发布任务输入项目名,选择构建一个maven项目,点击确定。
3)源码管理->git->添加->输入git的用户名密码
4)项目打包->clean install
5)立即构建,卡住大约几分钟之后开始下载相关依赖jar包,构建完成之后的jar包位置
cd /usr/local/jenkins/jenkins_home/workspace/hello/target
6)编写启动shell脚本,配置->Post Steps
#!/bin/bash
#服务名称,一般跟项目名称一致
SERVER_NAME=hello
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行
JAR_NAME=hello-1.0-SNAPSHOT
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/hello/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/hello/target
echo "查询进程-->$SERVER_NAME"
PID=`ps -ef | grep hello | grep -v grep | awk '{print $2}'`
echo "得到进程ID:$PID"
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
#后台运行jar
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &
保存之后点击重新构建,就可以自动运行jar启动项目了
7)删除容器重新启动带上项目的端口号,重新构建一次之后,浏览器访问
docker run -p 8088:8080 -p 8081:8081 -p 50000:50000 -v /usr/local/jenkins/jenkins_home:/var/jenkins_home --name jenkins -d jenkins/jenkins