windows环境下docker+jenkins实现springboot项目的自动部署

本机要安装jdk、maven环境。
Jenkins全局配置jdk、maven、git

建议从8开始看(我配置顺序有误差,看完在做)
1.打开Jenkins构建一个maven项目
windows环境下docker+jenkins实现springboot项目的自动部署_第1张图片
2. 填写Jenkins配置
windows环境下docker+jenkins实现springboot项目的自动部署_第2张图片
3. 立即 构建
windows环境下docker+jenkins实现springboot项目的自动部署_第3张图片
windows环境下docker+jenkins实现springboot项目的自动部署_第4张图片
构建成功结果。
构建出现异常,可尝试修改。
在这里插入图片描述
4. 编写dockerfile(操作环境下。或挂载路径)

#基于openjdk:8
FROM tomcat:7
# 指定当前操作目录
WORKDIR /usr/local/tomcat/webapps
#容器启动后执行的操作
CMD java -jar springboot-docker-1.0.jar
  1. 编写打包成功后的shell脚本
    windows环境下docker+jenkins实现springboot项目的自动部署_第5张图片
#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=f:/docker-jenkins
DOCKER_PATH=/usr/local/tomcat/webapps
# 源jar路径  
SOURCE_PATH=f:/resource/jenkins/workspace/dockerTest/target
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=springboot-docker-1.0
TASK_NAME=spring-boot-docker-0.0.1.RELEASE
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
 
DATE=`date +%Y%m%d%H%M`
 
# 最新构建代码 移动到项目环境
function transfer(){
    echo "最新构建代码 $SOURCE_PATH/$TASK_NAME.jar 迁移至 $BASE_PATH ...."
        cp $SOURCE_PATH/$TASK_NAME.jar $BASE_PATH/$SERVER_NAME.jar
    echo "迁移完成"
}
 
# 备份
function backup(){
	if [ -f "$BASE_PATH/$SERVER_NAME.jar" ]; then
    	echo "$SERVER_NAME.jar 备份..."
        	cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar
        echo "备份 $SERVER_NAME.jar 完成"
    else
    	echo "$BASE_PATH/$SERVER_NAME.jar不存在,跳过备份"
    fi
}
 
# 构建docker镜像
function build(){
	if [ -n "$IID" ]; then
		echo "存在$SERVER_NAME镜像,IID=$IID"
	else
		echo "不存在$SERVER_NAME镜像,开始构建镜像"
			cd $BASE_PATH
		docker build -t $SERVER_NAME .
	fi
}
 
# 运行docker容器
function run(){
	backup
	transfer
	build
	if [ -n "$CID" ]; then
		echo "存在$SERVER_NAME容器,CID=$CID,重启docker容器 ..."
			docker restart $SERVER_NAME 
		echo "$SERVER_NAME容器重启完成"
	else
		echo "不存在$SERVER_NAME容器,docker run创建容器..."
			docker run -d --name $SERVER_NAME -v $BASE_PATH:$DOCKER_PATH -p 8888:8888 $SERVER_NAME
		echo "$SERVER_NAME容器创建完成"
	fi
}
 
#入口
run    
  1. 构建
    windows环境下docker+jenkins实现springboot项目的自动部署_第6张图片
    查看docker镜像及容器
    在这里插入图片描述
    在这里插入图片描述
    结果展示:
    windows环境下docker+jenkins实现springboot项目的自动部署_第7张图片

此时,每次修改还需要手动构建更新。

  1. Jenkins+GitHub持续集成配置
    配置要求:Jenkins以安装github插件
    Jenkins已拥有一个公网ip地址,本地搭建,可以选用ngrok实现内网穿透
    内网穿透:就是将内网IP映射成对外可访问的域名
    国内Ngrok官网:https://www.ngrok.cc/
    windows环境下docker+jenkins实现springboot项目的自动部署_第8张图片
    配置隧道对应信息
    windows环境下docker+jenkins实现springboot项目的自动部署_第9张图片
    确认添加,开通成功。

下载客户端
下载自己系统对应的客户端:https://www.ngrok.cc/download.html
进行穿透
启动Sunny-Ngrok启动工具.bat脚本,输入隧道ID
windows环境下docker+jenkins实现springboot项目的自动部署_第10张图片
穿透成功。保存好对应网址。
10.Github中获取访问token值,需要一个对项目有写权限的账户
GitHub->setting->Developer setting->Personal access tokens->点击Generate new token
内容填写如下:
windows环境下docker+jenkins实现springboot项目的自动部署_第11张图片
创建成功后
windows环境下docker+jenkins实现springboot项目的自动部署_第12张图片
保存好生成的token值。(刷新之后会消失)
11.配置jenkins
windows环境下docker+jenkins实现springboot项目的自动部署_第13张图片
windows环境下docker+jenkins实现springboot项目的自动部署_第14张图片
windows环境下docker+jenkins实现springboot项目的自动部署_第15张图片
windows环境下docker+jenkins实现springboot项目的自动部署_第16张图片
windows环境下docker+jenkins实现springboot项目的自动部署_第17张图片
12.配置GitHub
windows环境下docker+jenkins实现springboot项目的自动部署_第18张图片
windows环境下docker+jenkins实现springboot项目的自动部署_第19张图片
windows环境下docker+jenkins实现springboot项目的自动部署_第20张图片
当Github收到了客户端有Push动作时,会触发一个Hook。
13.之前新建任务修改部分内容
windows环境下docker+jenkins实现springboot项目的自动部署_第21张图片
选择刚刚 jenkins配置的git server
windows环境下docker+jenkins实现springboot项目的自动部署_第22张图片
git push测试

你可能感兴趣的:(jenkins,Jenkins)