jenkins+Docker+springcloud微服务持续集成

376 篇文章 51 订阅

流程说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本地部署

在这里插入图片描述
在这里插入图片描述
微服务是可以独立部署的,如果不借助spring-boot-maven插件,package出来的jar包是不能运行的。
借助spring-boot-maven插件package出来的jar包已经内嵌了tomcat相关的jar,可以独立运行(java -jar):
在这里插入图片描述
在这里插入图片描述

使用Dockerfile制作微服务镜像

在这里插入图片描述
vi Dockerfile
在这里插入图片描述

docker build --build-arg JAR_FILE=tensquare_eureka_server-1.0-SNAPSHOT.jar -t eureka:v1 .
  • –build-arg JAR_FILE=xxx 设置参数的值
  • eureka:v1:eureka是镜像名称,v1是标签tag

docker build日志查看:
在这里插入图片描述
在这里插入图片描述
docker run创建容器验证一下:
在这里插入图片描述
在这里插入图片描述
docker logs -f 容器ID查看容器日志

Harbor

简介

在这里插入图片描述

安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建用户和项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
给tensquare项目添加成员:
在这里插入图片描述
在这里插入图片描述

上传镜像到Harbor

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于docker并不信任harbor仓库地址,贸然上传到harbor会报错:
在这里插入图片描述
vi /etc/docker/daemon.json 信任harbor仓库地址

在这里插入图片描述
systemctl restart docker 重启docker

上传到私有仓库,需要账号密码:不然会报错
在这里插入图片描述
所以需要登录harbor:
在这里插入图片描述
此时就会成功push:
在这里插入图片描述
查看harbor仓库,就会看到刚才上传的eureka镜像:
在这里插入图片描述

从harbor下载镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
docker images
在这里插入图片描述

spring cloud微服务持续集成

代码上传到gitlab

在这里插入图片描述

idea vcs

enable
在这里插入图片描述
git
在这里插入图片描述
add
在这里插入图片描述
commit
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
remotes
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
push
在这里插入图片描述
在这里插入图片描述

TortoiseGit操作方式

init
在这里插入图片描述
在这里插入图片描述
commit
在这里插入图片描述
在这里插入图片描述
push
在这里插入图片描述
remote
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从gitlab拉取项目源码

在项目根目录创建Jenkinsfile脚本文件:
在这里插入图片描述
jenkins操作:创建pipeline
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将分支设计成参数接收,更灵活:
在这里插入图片描述
在这里插入图片描述
脚本中的变量设计:
在这里插入图片描述
" "双引号引用变量:
在这里插入图片描述
提交Jenkinsfile脚本文件:
在这里插入图片描述
Build With Parameters
在这里插入图片描述
构建完毕后代码成功pull:
在这里插入图片描述

提交到SonarQube代码审查

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
报错:
在这里插入图片描述
注释这行:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package各个子项目进行

在这里插入图片描述
mvn install失败
因为common工程不是一个标准的spring cloud微服务工程,找不到启动类main class而报错。
因此不能在parent工程中引入spring-boot-maven插件,而是在需要该插件的子工程中分别引入。
在这里插入图片描述
再次构建,就已经安装到本地仓库了:
在这里插入图片描述
mvn clean package
在这里插入图片描述

使用${project_name}来获取当前工程的名称

在这里插入图片描述
在这里插入图片描述
package zuul时报错:
找不到parent父工程
在这里插入图片描述
需手动上传parent的pom文件到服务器的仓库相应目录下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用Dockerfile编译、生成镜像

在这里插入图片描述

dockerfile-maven-plugin插件可以读取每个工程中的Dockerfile文件自动构建镜像

在这里插入图片描述
tensquare_eureka_server工程
在这里插入图片描述
使用dockerfile-maven-plugin插件调用Dockerfile脚本文件生成镜像:
在这里插入图片描述
Jenkinsfile脚本中触发dockerfile-maven-plugin插件的执行:
在这里插入图片描述
在这里插入图片描述
构建完毕后会生成eureka工程的镜像:
在这里插入图片描述
每个子工程都需要添加Dockerfile脚本文件和在pom.xml中添加dockerfile-maven-plugin插件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上传镜像到harbor镜像仓库

在这里插入图片描述
定义镜像的标签(版本号):
在这里插入图片描述
定义harbor的URL地址:
在这里插入图片描述
定义harbor的项目名称:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上传到harbor是需要login的,账号密码写在Jenkinsfile脚本中就会暴露给所有开发人员,所以应该在jenkins的凭据中添加harbor的账号密码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击账号进入会看到自动生成的ID:
在这里插入图片描述
Jenkinsfile脚本中定义harbor的登录凭证ID:
在这里插入图片描述
在流水线语法中选择:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对生成的脚本代码进行变量替换(可选):
在这里插入图片描述
在这里插入图片描述
提交push脚本。
jenkins构建日志:

在这里插入图片描述
登录harbor仓库查看push的镜像:
在这里插入图片描述

从harbor拉取镜像和发布应用

在这里插入图片描述
在这里插入图片描述

jenkins安装Publish Over SSH插件

在这里插入图片描述
配置101ssh免密登录到103

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成远程执行命令脚本:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值