jenkins+gitlab+maven+docker自动化部署spring boot
构建成功后,在jenkins workspace文件目录里可看到下载下来的代码,以及在target里生成的jar包。在gitlab的项目里》设置》导入所有仓库,webhooks配置,填上上边的url,secret token。1.生成docker镜像,上传到阿里云或自搭镜像服务器,远程到主机shell进行pull,更新容器等。Jenkins 执行远程脚本(停止老版本容器,删除老版本容器,build
工作流程:
开发人员在gitLab上打了一个tag
gitLab把tag事件推送到Jenkins
Jenkins 获取tag源码,编译,打包,构建镜像
Jenkins 复制jar包到远程服务器
Jenkins 执行远程脚本(停止老版本容器,删除老版本容器,build 镜像,run 新容器)
通知测试人员部署结果
环境要求:
git,jdk,maven,docker,jenkins
一、环境安装:
1.1先安装jdk,maven
1 |
|
远程wget下载不到文件,可到官网下载最新的。再配置
1.2 安装git
1 |
|
1.3安装 docker
1 |
|
1.4 安装jenkins
1 |
|
docker 安装 jenkins
1 |
|
pom.xml
<build>
<finalName>gpserver</finalName>
<plugins>
<!-- Srping Boot 打包工具 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 指定JDK编译版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
dockerfile
# 基于哪个镜像
FROM frolvlad/alpine-oraclejdk8:slim
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 声明需要暴露的端口
EXPOSE 15678 10111
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
ADD gpserver.jar app.jar
RUN sh -c 'touch /app.jar'
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV JAVA_OPTS=""
# 配置容器启动后执行的命令
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
二、 jenkins 配置
插件下载
所需要的插件:
Maven Integration plugin
docker-build-step
Docker plugin
Gitlab Hook Plugin
GitLab Plugin
jenkins 系统配置:
2.1Maven项目配置
默认配置即可
2.2 Gitlab 配置
Credentials 添加:
gitlab的账号、密码
gitlab 有权限的api token
可提前在凭证》系统里添加好
jenkins全局工具配置
2.3Maven 配置
选择安装的maven的目录settings.xml路径
2.4 Maven配置,新增一个,去掉自动安装,选择安装的目录
到止jenkins环境配置完成。
三、配置部署项目
在jenkin里新建任务,构建一个maven项目
3.1源码管理:
把git地址,填上,Credentials 如果之前未设置,添加一个
如果连接成功,不会报报错
3.2构建触发器
在gitlab的项目里》设置》导入所有仓库,webhooks配置,填上上边的url,secret token
配置成功下边会显示 200状态码
3.3 构建build
构建成功后,在jenkins workspace文件目录里可看到下载下来的代码,以及在target里生成的jar包
Post Steps执行发布,更新脚本
在远程操作之前,先要配置发布对象主机免密登录
1 |
|
具体脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
至此 一个项目配置完成。
结语:
jenkins 只是一个工具,使用功能强大,有其他的使用方式:
1.生成docker镜像,上传到阿里云或自搭镜像服务器,远程到主机shell进行pull,更新容器等。
2.可配合docker swarm,搭建集群部署,只需改一下脚本即可。
更多推荐
所有评论(0)