Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)

Jenkins+Docker+SpringCloud持续集成流程说明

大致流程说明:

1) 开发人员每天把代码提交到Gitlab代码仓库

2) Jenkins从Gitlab中拉取项目源码,编译并打成jar包,然后构建成Docker镜像,将镜像上传到Harbor私有仓库。

3) Jenkins发送SSH远程命令,让生产部署服务器到Harbor私有仓库拉取镜像到本地,然后创建容器。

4) 最后,用户可以访问到容器

服务列表

服务器名称

IP地址

安装的软件

代码托管服务器

20.0.0.20

Gitlab

持续集成服务器

20.0.0.30

Jenkins,Maven,Docker18.06.1-ce

Docker仓库服务器

20.0.0.

Docker18.06.1-ce,Harbor1.9.2

生产部署服务器

20.0.0.

Docker18.06.1-ce

SpringCloud微服务源码概述

项目架构:前后端分离

后端技术栈:SpringBoot+SpringCloud+SpringDataJpa(Spring全家桶)

微服务项目结构:

数据库结构:

  • tensquare_gathering:活动微服务数据库。对应tensquare_gathering微服务
  • tensquare_user:用户认证数据库,存放用户账户数据。对应tensquare_admin_service微服务

微服务配置分析:

  • tensquare_eureka
  • tensquare_zuul
  • tensquare_admin_service
  • tensquare_gathering

本地部署-SpringCloud微服务部署

本地运行微服务

逐一启动微服务

微服务项目包解压,目录在idea中打开,

idea会自动下载相关组件插件(等待时间较长,极大可能失败,看人品,毕竟国外服务器下载,没有根治的方法)

失败多来几次直到成功

缺少依赖组建

安装maven

Windows本地配置maven环境

解压目录:

然后打开目录去配置:

这个地方:

//配置下载源
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public </url>
</mirror>

会自动更新:

这样做是为了下载插件尽量不出问题!!!

在等待插件过程中先干其他的事

本地数据库导入(windows本地安装mysql5.7)

安装好后添加环境变量

然后cmd进入数据库

我是按照我自己的流程做的:

有些配置和东西要在后面好了在搞前面的因人而异

本地部署-前端静态web网站

前端技术栈:NodeJS+VueJS+ElementUI

本地运行(安装nodejs)

Vscode终端中运行:npm run dev

安装完先不管,然后继续:(可以把快捷方式选上)

拖进去后

打开vscode,去打开这个文件

找到之前放的打开:

打开之后

继续安装nodejs,一路默认

装完后:

然后接着下载:python2

下载完:

然后找到前段目录:

接着输入:

然后再用cnpm run dev  执行一下这个前端目录:

结果不会报错入下界面:

输入上面的地址:http://localhost:9528

就成了!

这一部分mysql 前端就没问题了!!

接着继续做:

打开idea

# 单机版
server:
port: 10086 #基本服务器信息
spring:
application:
name: eureka-server #服务ID #enreka服务器配置
eureka:
client:
fetch-registry: false #单机版关闭enreka相互注册
register-with-eureka: false
service-url:
defaultZone: http://localhost:${server.port}/eureka #暴露eureka服务访问地址
server:
enable-self-preservation: false #关闭自我保护

 

 改完之后可以启动一下eureka:

运行后可以发现端口开了10086

然后在浏览器输入地址,访问enreka:

然后搞网关:

修改完后:

然后访问刷新一下可以看到zuul注册上去了:

然后继续:

然后再去刷新看一下也有了:

然后继续:

运行后再去刷新看一下:也有了

然后我们就开始测试:找到数据库拿出数据,能拿出微服务到数据库没问题

前端拿不到数据就是前端的问题

安装postman工具

安装好后:

到这里 微服务到数据库就没问题了!!

然后输入:http://localhost:9528

接下来都是本地跑的,接下来如何打包:

首先要配置jdk目录:

<build>
<plugins>
<plugin>
<!--提供打包(将应用打包成可执行的jar包)-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<!-- 指定maven编译的jdk版本 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<!--jdk地址-->
<executable>C:/Program Files/Java/jdk1.8.0_152/bin/javac</executable>
</configuration>
</plugin>
</plugins>
</build>

  

把上面代码复制到pom.xml 里

(pom.xml最后

</repositories>
......(复制的内容)
</project>之间

 输入打包命令:mvn clean package

如果提示mvn无法识别则需要重启IDEA再进行打包

然后去找包:

可以看到打包里的东西:

对jar包进行单独运行:

命令执行这个包:

java -jar tensquare_eureka_server-1.0-SNAPSHOT.jarm 

  

然后浏览器访问:http://localhost:10086

由此可以看出,对于打的jar包是可以单独在本地进行运行的

Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)的更多相关文章

  1. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...

  2. Devops 开发运维高级篇之容器管理

    Devops 开发运维高级篇之容器管理 安装docker Dockerfile镜像脚本入门制作 Harbor镜像仓库安装及使用 不过多解释docker直接秀基操 安装docker:(jenkins服务 ...

  3. Devops 开发运维高级篇之微服务代码上传和代码检查

    Devops 开发运维高级篇之微服务代码上传和代码检查 微服务持续集成(1)-项目代码上传到Gitlab 微服务持续集成(2)-从Gitlab拉取项目源码 微服务持续集成(3)-提交到SonarQub ...

  4. 08 . Jenkins之SpringCloud微服务+Vue+Docker持续集成

    简介 大致流程 /* 1.开发人员每天把代码提交到Gitlab代码仓库 2.jenkins从gitlab中拉取项目源码,编译并打包成war包,然后构建Docker镜像,将镜像上传到Harbor私有仓库 ...

  5. 使用Jenkins+Docker+Gitlab+Maven搭建持续集成环境

    继使用Docker搭建Gitlab后 大致的步骤如下: 开发人员通过IDE工具(IntelliJ IDEA)将代码推送到gitlab. jenkins从gitlab中获取到源码,并使用maven编译. ...

  6. Gitlab+Jenkins+Docker实现net core持续集成

    前言 在项目中使用这一套自动集成的体系之后,一直想找个时间总结出来,用于自己记录也打算将自己的所得分享给园友们,不经常写文章,可能会有错误的地方,希望各位不吝指正,我会及时的改正并表示感谢,希望大家能 ...

  7. asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

    运行环境: centos7.2服务器或则虚拟机 可以是腾讯云也可以是内网服务器,(如果是内网服务器需要用frp做内网穿透,这样才可以通过外网访问该服务器) svnserver 来托管代码 一.安装je ...

  8. (视频)《快速创建网站》 4.1 为啥造软件不同于造汽车,为啥是软件就一定会有Bug - 构建开发运维一体化(DevOps)

    本文是<快速创建网站>系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...

  9. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

随机推荐

  1. class、抽象类、接口区别

    Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 由于抽象类不 ...

  2. 我的MySQL学习记录 完结篇DAY05~

    课程已全部学完,Redis\mongoDB 的学习也会提上日程啦~剩下的最大的最大的问题在于练习,大量的练习,后期会发我的学习记录. 小记:也不知道是不是加强针的缘故,老是拉肚子,记录彻底感冒的一天, ...

  3. Spark基础知识详解

    Apache Spark是一种快速通用的集群计算系统. 它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎. 它还支持一组丰富的高级工具,包括用于SQL和结构化数 ...

  4. 【记录一个问题】tesla model 3在行驶1000公里后,行驶中踩下刹车出现告警“同时踩下制动踏板和电门”

    问题的描述如下:1.行驶1000公里左右后出现,之前没有:2.超过一定速度后再踩刹车出现此告警,如果低速环境频繁起停则不会出现:3.告警的意思是使用者同时踩下了刹车和电门,第一次电话客服反馈--检查脚 ...

  5. Cesium中级教程8 - Introduction to Particle Systems 粒子系统入门

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ What is a particle system? 什么是粒子 ...

  6. Kubernetes-Secret

    1. 简介 Secret 是一种包含少量敏感信息例如密码.令牌或密钥的对象. 这样的信息可能会被放在 Pod 规约中或者镜像中. 使用 Secret 意味着你不需要在应用程序代码中包含机密数据. 由于 ...

  7. JS基础语法(二)

    目录 JavaScript基础语法(二) 八. 函数 1. 函数的概念 2. 函数的使用 声明函数 调用函数 3. 函数的封装 4. 函数的参数 函数的参数匹配问题 5. 函数返回值 6. argum ...

  8. db2日志模式、备份归档、恢复解析

    DB2的日志分为两种模式,日志循环与归档日志,也就是非归档和归档模式.下面就具体介绍一下这两种方式以及和备份归档设置的关系. 一.日志循环 这是默认方式,也就是非归档模式,这种模式只支持(backup ...

  9. Flutter 多引擎支持 PlatformView 以及线程合并解决方案

    作者:字节移动技术-李皓骅 摘要 本文介绍了 Flutter 多引擎下,使用 PlatformView 场景时不能绕开的一个线程合并问题,以及它最终的解决方案.最终 Pull Request 已经 m ...

  10. tcp|ip nagle算法

    在TCP传输数据流中,存在两种类型的TCP报文段,一种包含成块数据(通常是满长度的,携带一个报文段最多容纳的字节数),另一种则包含交互数据(通常只有携带几个字节数据). 对于成块数据的报文段,TCP采 ...