jenkins+Docker+springcloud微服务持续集成
流程说明
本地部署
微服务是可以独立部署的,如果不借助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插件
配置101
ssh免密登录到103
生成远程执行命令脚本:
jenkins+Docker+springcloud微服务持续集成相关推荐
- 搭建Jenkins+SpringBoot+Docker的微服务持续集成框架
前言 近一.两年,SpringBoot和Docker可以说非常的火热啊,而早在2015年的时候我就弄过一下Docker,不过由于职位和跳槽等种种原因,2016年就很少搞了,不过现在再捡起来也是很容易的 ...
- Jenkins+Kubernetes+Docker实现微服务持续集成
nfs添加共享目录 cat /etc/exports /opt/nfs/jenkins *(rw,no_root_squash) /opt/nfs/maven *(rw,no_root_squash) ...
- centos7.9使用jenkins部署springcloud微服务_配合SVN_脚本_实现自动部署后端以及前端程序_亲测成功---持续集成部署Jenkins工作笔记0023
以前有个jekins教程,还比较详细,但是,那个是基于git和svn,并且需要配置jekins支持git,svn的插件. 配置以后就可以实现只要提交代码,就会自动触发部署,但那个时候安装jenkins ...
- Jenkins+Docker+Spring+Java项目持续集成(单机版)
1.大致流程 流程说明: 1)开发人员每天把代码提交到 Gitlab 代码仓库 2)Jenkins 从 Gitlab 中拉取项目源码,编译并打成jar包,然后构建成 Docker 镜像,将镜像上传到 ...
- k8s+jenkins+docker部署微服务实现CI/CD
"所爱隔山海,山海不可平,海有舟可渡,山有路可行,此爱翻山海,山海皆可平." 作为一个想搞开发的,最近似乎都在干运维,不知道有没有跑偏... 2021.5.14 一般的中小公司个人 ...
- springcloud微服务整合/集成swagger(knife4j-小刀)实现在线文档调试和查看功能
1.在gateway网关层加入以下依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifact ...
- docker容器 eureka 集成_微服务:基于 Docker 的微服务架构之分布式企业级实践参考...
编者按:本文分享自CSDN技术博客,作者为 FlyWine,所有权归原著者.若有不妥,联系本头条号以做必要处理. 目录 Microservice 和 Docker 服务发现模式 客户端发现模式 Net ...
- CI/CD——构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台
构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台 CI/CD是什么? 持续集成(CI)/持续交付(CD)的优势 自动化部署流程图 Git Github Gi ...
- 容器化技术与微服务结合---结合springcloud微服务框架进行部署(含切换成阿里云docker仓库)(五)
目录 系列 更换成阿里云仓库 开通阿里云镜像服务 创建仓库 本地k8s切换成阿里云的镜像仓库 测试阿里云镜像 准备简单的微服务 eureka 应用配置 k8s配置: demo-a 应用配置 k8s配置 ...
最新文章
- LoadRunner v12.55发布,大量新增功能,各协议得到优化改进
- [Android] 按钮单击事件的五种写法
- My MPC系列·暴风影音 V5.00 RC3
- 使用MEF构建可扩展的Silverlight应用
- 欧拉函数(简单介绍+例题)
- 目录页码错误未定义书签怎么解决_目录页码对不齐应该怎么办?这2种方法,工作效率大增...
- 【Spark Summit EU 2016】使用参数服务器在Spark上扩展因式分解机
- ExtJs学习笔记(10)_Window窗口的Border布局
- 设计模式之建造者(builder)模式
- 原型设计Axure RP mac
- 5G大规模天线系统架构探讨
- app开发外包公司一般报价多少钱?
- VB中传值(ByVal)和传地址(ByRef)的区别
- 修改win7的登录界面背景与关机背景
- sql查询语句 -牛客学习笔记
- javascript无限请求_SockJS - 重新连接后无限xhr-streaming呼叫
- Git版本控制管理——基本Git概念
- [创新工具和方法论]-02- DOE实验设计步骤
- 【刷题日记】BFS 经典题目
- 模式识别与机器学习(更新中)