使用Jenkins测试CI/CD的自动、持续构建及测试软件(在虚拟机中)
一、使用Maven打包微服务项目
先测试一下能否打Jar包
-
结构图:其中common为配置项、工具模块,没有main方法;service_paper为核心业务模块
-
项目的打包类型:pom、jar、war
- pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。
- jar工程:将会打包成jar用作jar包使用,packaging默认类型。
- war工程:将会打包成war,发布在服务器上的工程。如网站或服务。
即:
- 在PaperTypesettingSystem-Backend,service这些上层文件夹管理模块中,添加
<packaging>pom</packaging>
- 在common模块(没有main方法的工具模块)中添加
<packaging>jar</packaging>
- 在service_paper具体的业务代码模块中添加
<packaging>jar</packaging>
根据maven的继承特性,在service文件夹模块中添加:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
然后只需在每个有mian方法的具体的业务模块的pom中添加:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
最终打包:只需在最顶层模块的文件夹进行mvn clean package,生成jar包。
BUILD SUCCESS,jar包大小:67.8MB
此时的jar包可以直接运行了
二、安装运行环境
1.安装JAVA、maven、git(配置环境,/etc/profile)
#java environment
export JAVA_HOME=/export/servers/jdk
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
#maven environment
export MAVEN_HOME=/export/servers/apache-maven-3.8.1
export PATH=$PATH:$MAVEN_HOME/bin
2.安装git
yum -y install git
3.安装docker
-
安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
-
添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
更新并安装Docker-CE
yum makecache fast
yum -y install docker-ce
-
开启Docker服务
service docker start
-
测试是否安装成功
docker -v
三、安装JenKins
1.官网下载jenkins.war包,放在jenkins文件夹内,并启动
nohup java -jar /export/servers/jenkins/jenkins.war >/export/servers/jenkins/jenkins.out &
2.初始化 Jenkins 插件和管理员用户
访问jenkins
3.解锁jenkins
vi /root/.jenkins/secrets/initialAdminPassword
2a447e76c0e940afb256d0779d972654
输入密码后,继续
4.配置国内的镜像
官方下载插件慢,需要更新下载地址
注:这里要先先杀死Jenkins
kill -9 10967
进入更新配置位置:cd {你的Jenkins工作目录}/updates
cd /root/.jenkins/updates
sed -i 's/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json && sed -i 's/http://www.google.com/https://www.baidu.com/g' default.json
(注:这里是直接修改配置文件,如果前边Jenkins用sudo启动的话,那么这里的两个sed前均需要加上sudo)
5.重启Jenkins,安装插件
重试
插件安装完成,创建管理员用户
保存并完成
四、配置 Jenkins 构建工具
配置jdk、maven、git
使用which命令
1.jdk
which jdk
/export/servers/jdk
2.maven
which maven
/export/servers/apache-maven-3.8.1
3.git
which git
/usr/bin/git
五、构建作业
1.写好docker文件
2.创建一个任务
#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./
service_name="service-paper"
service_prot=8001
#查看镜像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
echo "exist $SERVER_NAME image,IID=$IID"
#删除镜像
docker rmi -f $service_name
echo "delete $SERVER_NAME image"
#构建
docker build -t $service_name .
echo "build $SERVER_NAME image"
else
echo "no exist $SERVER_NAME image,build docker"
#构建
docker build -t $service_name .
echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
echo "exist $SERVER_NAME container,CID=$CID"
#停止
docker stop $service_name
#删除容器
docker rm $service_name
else
echo "no exist $SERVER_NAME container"
fi
#启动
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#查看启动日志
#docker logs -f $service_name
回到首页面
3.执行(需要先启动docker)
service docker start
下载依赖中
构建
4.构建成功
后台查看运行情况,没问题