环境:centos7 + jdk1.8 + docker + jenkins
(一)Jenkins插件配置
- 安装git插件
- 安装maven插件
- 安装gitlab插件
- 安装docker插件
图解:
①配置插件在dashboard下面的manage jenkins中:
②点击manage plugins,安装所需要的插件
(二)创建Maven项目
①创建Maven项目
②配置源码仓库地址以及源码分支:
- 配置需要构建的源码分支:此处默认为master分支,也可修改
③配置触发器: - 有多种构建触发器,一般我们均不勾选。默认使用手动触发,也可添加webhook仓库回调,有push提交时自动构建
④配置maven 自定义的settings.xml文件 - 不使用默认的settings.xml配置,后续构建出的镜像需要推送 至远程仓库docker hub时,需要在自定义的settings.xml文件中
配置远程docker hub的账号密码.
(三)docker配置
- 确保服务器上的docker已经连接上了远程docker hub仓库
docker login #登陆远程docker hub仓库,后续构建的java服务镜像需要推送至远程仓库,供k8s或者docker compose容器编排工具使用
(四)java服务pom.xml文件配置
- 此处我们利用Maven插件来构建java服务镜像:
①pom文件配置如下-引入插件:
<build>
<finalName>${project.artifactId}-${project.version}</finalName> ##构建服务jar的名称,artifactId-version 命名
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> ##引入maven插件
</plugin>
<!--构建镜像-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId> ##引入docker-maven-plugin docker镜像插件
<version>0.4.13</version>
<!-- 绑定build-->
<executions>
<execution>
<id>build-image</id>
<phase>package</phase> ##绑定package build,也就是说在maven执行mvn package时,会自动执行镜像的构造过程,此处也可绑定其他的phase,例如clean、compile、install等等maven的构建过程
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<!--镜像构建配置-->
<configuration>
<useGitCommitId>true</useGitCommitId> ##镜像的tag命名:以git提交的commitId的前7位来命名
<imageName>docker-hub-repo/${project.artifactId}</imageName>##镜像的名称:假设我docker-hub名称为:docker-hub-repo,则可以如pom.xml文件中构造
<pushImage>true</pushImage> ##镜像构建完成后,自动推送镜像到远程hub,此处要配合serverId一起使用,serverId用来配置hub的账号密码信息
<baseImage>java</baseImage>
<entryPoint>
["java","-jar","/${project.build.finalName}.jar"] ##构建entryPoint,执行脚本命令,此处可以拓展成使用脚本发布,还可以设置发布JVM参数等等
</entryPoint>
<resources> ##配置jar包的路径,构建镜像时,需要使用到jar包
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<serverId>docker-hub</serverId> ##重要:此处的id设置对应着settings.xml文件中的serverId配置。用于获取远程Hub的账号密码信息,然后推送镜像,上文中有提及,下文中将给出settings.xml中server配置的实例,注意:serverId必须和settings.xml文件中的配置一致。
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
②配置自定义的settings.xml文件
- 在文件中加入如下配置:
<server>
<id>docker-hub</id>
<username>docker-hub账号</username>
<password>docker-hub密码</password>
<configuration>
<email>
docker-hub中配置的邮箱账号
</email>
</configuration>
</server>
至此,所有配置均设置,提交一下代码,然后触发下jenkins,看看效果吧!!!是不是so easy呀 ~
参考文档:
https://www.cnblogs.com/jpfss/p/10945324.html
https://www.hi-linux.com/posts/55356.html