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配置

一.配置打包依赖

新建任务(自行百度或者参考上一篇文章)

配置构建步骤

gitlab vue 流水线配置 gitee 流水线_spring boot


clean deploy -pl commons -am -U

将依赖打包上传至maven私服,此处选择的maven版本就是Jenkins机器上自己安装的maven.保存后构建依赖

执行成功后可查看maven私服是否上传jar包成功

gitlab vue 流水线配置 gitee 流水线_docker_02

二.Jenkins部署springboot

Jenkins 系统管理–>系统设置 拉到最下面配置Publish over SSH(如果没有该插件可以自行在插件管理中下载)

gitlab vue 流水线配置 gitee 流水线_maven_03


gitlab vue 流水线配置 gitee 流水线_docker_04

springboot项目配置

新建任务

gitlab vue 流水线配置 gitee 流水线_maven_05


配置源码参考上一篇文章

构建配置maven

gitlab vue 流水线配置 gitee 流水线_maven_06


package -f ./gateway-server/pom.xml -DskipTests docker:build

注意目录结构:通过gitee拉下来的源码默认是从根目录下执行maven命令,所以只执行gateway-server这个项目续先进入该目录.

gitlab vue 流水线配置 gitee 流水线_gitlab vue 流水线配置_07


配置ssh server

gitlab vue 流水线配置 gitee 流水线_docker_08


执行部署命令

![在这里插入图片描述](

gitlab vue 流水线配置 gitee 流水线_maven_09

```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

保存退出然后点击构建:

gitlab vue 流水线配置 gitee 流水线_maven_10

注:文中的ip地址以linux机器ip为准

总结

以上是在上一篇的基础上继续深入学习SpringBoot+Docker项目部署,有很多不足,欢迎大家指正,互相交流,文中引用链接,如有侵权,请及时联系我们将予以删除,感谢。