参考:https://blog.csdn.net/weixin_44777669/article/details/110789051
首先我们先新建一个springboot项目然后上传到码云
这里我已经上传好了,大家也可以用这个来测试:https://gitee.com/xiaoyou66/jenkins_test
jenkins
这里我们不使用docker部署,因为我们需要在本地构建镜像并运行,安装教程参考
https://www.jenkins.io/zh/doc/book/installing/
我们下载好war包后,可以自己写一个启动脚本,脚本内容如下,这样Jenkins就可以自动挂后台了
nohup java -jar jenkins.war --httpPort=8081 >web.log 2>&1 &
安装好后我们打开Jenkins:
全局设置
安装好后我们来进行一下全局配置,进入Manage Jenkins-》Global Tool Configuration
,我们配置一下JDK,git和maven
JDK配置
我们jdk就手动下载,我们不用自动下载,jdk可以到https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载。下载`Linux x64 Compressed Archive`即可
下载好后我们为了方便起见就直接在根目录新建一个app文件夹,然后自己上传文件到这个文件夹使用:tar -zxf jdk-8u271-linux-x64.tar.gz
来解压压缩包。然后文件夹重命名mv jdk1.8.0_271 jdk8
然后我们到Jenkins哪里配置一下,路径就是:/app/jdk8/
Git全局配置
我们的系统里面自带git,我们不用管,如果没有,自己安装一下就可以了
Maven配置
我们同样是手动下载Maven:https://maven.apache.org/download.cgi
下载好后我们同样是把下载的压缩包上传到app目录下然后解压,下面我们就配置一下路径/app/apache-maven-3.6.3
到这里我们的全局配置就搞完了
插件安装
开始部署
我们构建一个maven项目
配置如下
我们的项目是公开的,所以不需要填用户名密码,如果是私有的,自己添加一个就行
触发器我们也不搞,有需要的自己百度一下如何使用
构建环境我们不搞,不需要
Pre Steps这里放入我们的构建脚本
echo "stop and delete container"
CID=$(docker ps -a | grep "jenkins-test" | awk '{print $1}')
if [ -n "$CID" ]; then
echo "has container,CID=$CID"
docker stop $CID
docker rm $CID
fi
echo "delete image"
DID=$(docker images | grep "jenkins-test" | awk '{print $1}')
if [ -n "$DID" ]; then
docker rmi jenkins-test
fi
echo "build docker image"
mvn dockerfile:build
echo "current docker images:"
docker images | grep jenkins-test
echo "start container----->"
docker run -d -p 8085:8085 --name jenkins-test jenkins-test
echo "start success!"
springboot配置
首先我们要新建一个dockerFile,内容如下
FROM openjdk:8-jdk
COPY ./target .
#暴露端口,要修改
EXPOSE 8085
ENTRYPOINT ["java","-jar","/jenkins-test.jar"]
然后pom内容如下
<build>
<finalName>jenkins-test</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.9</version>
<configuration>
<!--这里指定打包镜像的名称-->
<repository>${project.build.finalName}</repository>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
配置好之后就可以直接自动构建了
构建好后,我们可以查看我们构建的镜像了