Docker+Jenkins+Gitee+springBoot实现自动化流水线实战(二)
前言
本文接着上一篇 Docker+Jenkins+Gitee+springBoot实现自动化流水线实战(一)继续交流.本次新增分布式部署+多模块部署+maven私服等
提示:以下是本篇文章正文内容,下面案例可供参考
1. 安装maven私服:
nexus私服搭建
参考:
2.Jenkins所使用的maven配置
建议自己在Jenkins所在服务器安装maven,方便管理,按照以下配置修改maven settings.xml配置文件
maven本地仓库
<localRepository>/mydate/maven_repository</localRepository>
配置私服账户密码
<servers>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>maven-public</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>repo</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
配置maven私服仓库地址
<profiles>
<profile>
<id>maven-public</id>
<repositories>
<repository>
<id>maven-public</id>
<url>http://127.0.0.1:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>repo</id>
<repositories>
<repository>
<id>repo</id>
<url>http://127.0.0.1:8081/repository/repo/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>alimaven</id>
<repositories>
<repository>
<id>alimaven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>maven-snapshots</id>
<repositories>
<repository>
<id>maven-snapshots</id>
<url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
3.修改springboot项目所有 pom.xml文件
项目中所有的pom.xml文件都需要增加以下代码:
<distributionManagement>
<repository>
<!--这里的id需要和需要和settings.xml中的se中的server的id一致 -->
<id>repo</id>
<name>maven-public</name>
<!--releases仓库 -->
<url>http://127.0.0.1:8081/repository/repo/</url>
</repository>
<snapshotRepository>
<!--此名称要和maven/settings.xml中设置的ID一致 -->
<id>maven-snapshots</id>
<name>Nexus snapshots Repository</name>
<url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
4.Jenkins配置
一.配置打包依赖
新建任务(自行百度或者参考上一篇文章)
配置构建步骤
clean deploy -pl commons -am -U
将依赖打包上传至maven私服,此处选择的maven版本就是Jenkins机器上自己安装的maven.保存后构建依赖
执行成功后可查看maven私服是否上传jar包成功
二.Jenkins部署springboot
Jenkins 系统管理–>系统设置 拉到最下面配置Publish over SSH(如果没有该插件可以自行在插件管理中下载)
springboot项目配置
新建任务
配置源码参考上一篇文章
构建配置maven
package -f ./gateway-server/pom.xml -DskipTests docker:build
注意目录结构:通过gitee拉下来的源码默认是从根目录下执行maven命令,所以只执行gateway-server这个项目续先进入该目录.
配置ssh server
执行部署命令
![在这里插入图片描述](
```cpp
```cpp
```powershell
#!/bin/bash
result=$(docker ps | grep "127.0.1.1:5000/gateway-server")
echo result
if [[ "$result" != "" ]]
then
echo "stop gateway-server"
docker stop gateway-server
fi
result1=$(docker ps -a | grep "127.0.1.1:5000/gateway-server")
if [[ "$result1" != "" ]]
then
echo "rm gateway-server"
docker rm gateway-server
fi
result2=$(docker images | grep "127.0.1.1:5000/gateway-server")
if [[ "$result2" != "" ]]
then
echo "127.0.1.1:5000/gateway-server"
docker rmi 127.0.1.1:5000/gateway-server:1.0-SNAPSHOT
fi
docker run --name gateway-server -p 9250:9250 -idt 127.0.1.1:5000/gateway-server:1.0-SNAPSHOT
保存退出然后点击构建:
注:文中的ip地址以linux机器ip为准
总结
以上是在上一篇的基础上继续深入学习SpringBoot+Docker项目部署,有很多不足,欢迎大家指正,互相交流,文中引用链接,如有侵权,请及时联系我们将予以删除,感谢。