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. 论文翻译:2021_AEC IN A NETSHELL: ON TARGET AND TOPOLOGY CHOICES FOR FCRN ACOUSTIC ECHO CANCELLATION

    论文地址:https://ieeexploreieee.53yu.com/abstract/document/9414715 Netshell 中的 AEC:关于 FCRN 声学回声消除的目标和拓扑选 ...

  2. 【Maven】maven 插件开发实战

    前言 众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的.包括我们日常使用到的类似 install.clean.deploy.compiler...这些命令,其实底层都是一个 ...

  3. JAVA多线程之并发编程三大核心问题

    概述 并发编程是Java语言的重要特性之一,它能使复杂的代码变得更简单,从而极大的简化复杂系统的开发.并发编程可以充分发挥多处理器系统的强大计算能力,随着处理器数量的持续增长,如何高效的并发变得越来越 ...

  4. Java实现二叉搜索树的插入、删除

    前置知识 二叉树的结构 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode( ...

  5. 浅解XXE与Portswigger Web Sec

    XXE与Portswigger Web Sec ​ 相关链接: ​ 博客园 ​ 安全脉搏 ​ FreeBuf 简介XML XML,可扩展标记语言,标准通用标记语言的子集.XML的简单易于在任何应用程序 ...

  6. Solon 开发,三、构建一个Bean的三种方式

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

  7. 《剑指offer》面试题24. 反转链表

    问题描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4-> ...

  8. linux目录作用

    / 根目录 /bin 命令保存目录(普通用户就可以使用的命令) /sbin 命令保存目录(超级用户才能使用的命令) /boot 启动目录,启动相关文件 /dev 设备文件保存目录 /etc 配置文件保 ...

  9. 领域驱动设计-CQRS

    CQRS 代表命令查询职责分离.这是我第一次听到Greg Young描述的模式.其核心概念是,您可以使用与用于读取信息的模型不同的模型来更新信息.在某些情况下,这种分离可能很有价值,但请注意,对于大多 ...

  10. Photoshop如何快速扣取图标

    由于图标往往与背景色区别很大,因此首先使用魔棒工具快速选择出图标 有时候选择出来是图标,有时候是背景色 可以通过选择反向来调节(右键即可) ctrl + J 提取出选择的区域 这时进行等分裁剪即可 点 ...