Jenkins+git+docker完成SpringBoot自动化部署
The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
翻译
: 领先的开源自动化服务器Jenkins提供了数百个插件来支持构建,部署和自动化任何项目。
本文章是根据尚硅谷的谷粒学院自动化部署部分课程所编写,因为自己遇到了一些问题,如需详细了解请去b站尚硅谷的谷粒学院观看视频,部署不成功的或者想大致下如何部署的可以借鉴此文章
谷粒学院教程地址: https://www.bilibili.com/video/BV1dQ4y1A75e?p=289
这里服务器需要的环境有
1、docker
2、jenkins
3、jdk1.8
4、maven3.6.3
5、git
1、创建SpringBoot的web工程
作为测试,新建一个controller,并且在applicattion.properties指定端口为8002
package com.huidu.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("hello")
public String sayHello(){
return "hello123";
}
}
server.port=8002
2、编写Dockerfile文件
文件内容:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./target/demojenkins.jar demojenkins.jar
EXPOSE 8002
ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]
将该文件放入项目根路径下,如图
3、将该项目上传到gitee
在gitee新建一个仓库,将该项目上传该仓库
学过git的人应该的都知道,不清楚的请自行百度或者查看看这篇博客
https://blog.csdn.net/qq_22194659/article/details/82113560
4、进入Jenkins,完成相关配置和插件下载
我使用的是war包的Jenkins,使用java -jar就能运行了,默认端口在8080
附下载链接: https://www.jenkins.io/download/
第一次进入会有一些问题,因为我第一次已经配置过了,所以遇到问题可以去百度
或者跟我一样看这里的教程https://www.bilibili.com/video/BV1dQ4y1A75e?p=289
5、进行全局工具配置
配置第二项JDK,第三项Git和最后一项Maven(当然,你得在你的服务器下载并配置好相关环境变量)
配置大概如下:
6、创建一个任务
6.1、创建一个任务demoJenkins,选择自由风格
6.2、添加git仓库和密钥
复制创建的仓库地址,并输入凭据(只需要输入gitee的用户名和密码)
6.3、在增加构建步骤选择执行shell
复制该shell脚本
#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./
service_name="demojenkins"
service_prot=8002
#查看镜像id
IID=$(docker images | grep "o "exist $service_name image,IID=$IID"
#删除镜像
docker rmi -f $service_name
echo "delete $service_name image"
#构建
docker build -t $service_name .
echo "build $service_name image"
else
echo "no exist $service_name image,build docker"
#构建
docker build -t $service_name .
echo "build $service_name image"
fi
#查看容器id
CID=$(docker ps | grep "$service_name" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
echo "exist $service_name container,CID=$CID"
#停止
docker stop $service_name
#删除容器
docker rm $service_name
else
echo "no exist $service_name container"
fi
#启动
docker run -d --name $service_name -p $service_prot:$service_prot $service_name
#查看启动日志
docker logs -f $service_name
保存即可
6.4、构建任务完成部署
选择立即构建
构建的过程可以进入该任务,并选择控制台输出可看到日志
我们可以看到他下载jar包依赖并且启动springboot项目
当看到如下日志信息表示已经启动
使用docker ps我们可以查看得到该镜像已经在8002端口运行
接下来我们访问该项目
部署成功