Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)
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微服务持续集成(上)的更多相关文章
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...
- Devops 开发运维高级篇之容器管理
Devops 开发运维高级篇之容器管理 安装docker Dockerfile镜像脚本入门制作 Harbor镜像仓库安装及使用 不过多解释docker直接秀基操 安装docker:(jenkins服务 ...
- Devops 开发运维高级篇之微服务代码上传和代码检查
Devops 开发运维高级篇之微服务代码上传和代码检查 微服务持续集成(1)-项目代码上传到Gitlab 微服务持续集成(2)-从Gitlab拉取项目源码 微服务持续集成(3)-提交到SonarQub ...
- 08 . Jenkins之SpringCloud微服务+Vue+Docker持续集成
简介 大致流程 /* 1.开发人员每天把代码提交到Gitlab代码仓库 2.jenkins从gitlab中拉取项目源码,编译并打包成war包,然后构建Docker镜像,将镜像上传到Harbor私有仓库 ...
- 使用Jenkins+Docker+Gitlab+Maven搭建持续集成环境
继使用Docker搭建Gitlab后 大致的步骤如下: 开发人员通过IDE工具(IntelliJ IDEA)将代码推送到gitlab. jenkins从gitlab中获取到源码,并使用maven编译. ...
- Gitlab+Jenkins+Docker实现net core持续集成
前言 在项目中使用这一套自动集成的体系之后,一直想找个时间总结出来,用于自己记录也打算将自己的所得分享给园友们,不经常写文章,可能会有错误的地方,希望各位不吝指正,我会及时的改正并表示感谢,希望大家能 ...
- asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布
运行环境: centos7.2服务器或则虚拟机 可以是腾讯云也可以是内网服务器,(如果是内网服务器需要用frp做内网穿透,这样才可以通过外网访问该服务器) svnserver 来托管代码 一.安装je ...
- (视频)《快速创建网站》 4.1 为啥造软件不同于造汽车,为啥是软件就一定会有Bug - 构建开发运维一体化(DevOps)
本文是<快速创建网站>系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...
随机推荐
- Layui table 学习笔记
templet:'<div>{{createrFormat(d.accounts.name)}}</div>' function createrFormat(o){ retur ...
- vue2.0中实现echarts图片下载-----书写中
由于各个版本浏览器兼容性不一,所以,我们需要一个判断浏览器类型的函数来对不同的浏览器做不同的处理. 获取浏览器版本的函数 // 判断浏览器类型 IEVersion () { let userAgent ...
- Java使用poi实现Word添加水印(仅支持后缀为.docx格式)
最近要做电子合同,客户提出为了安全性要将合同中都添加水印,这个之前在网上看到过,貌似使用POI很好加.去网上一搜发现,清一色的只有一篇文章,并且这段代码是用不了的:在文章下边的评论里也发现都说用不了, ...
- Mysql存储过程二
1.MySQL中创建存储过程时通过DEFINER和SQL SECURITY设置访问权限 procedure与function.trigger等创建时紧接着CREATE都有个definer可选项,该de ...
- func-spring-boot-starter 快速上手
func-spring-boot-starter test 项目地址 func-spring-boot-starter项目地址: https://gitee.com/yiur/func-spring- ...
- Android官方文档翻译 八 2.1Setting Up the Action Bar
Setting Up the Action Bar 建立Action Bar This lesson teaches you to 这节课教给你 Support Android 3.0 and Abo ...
- 《剑指offer》面试题05. 替换空格
问题描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy." 输出:"We%20a ...
- QT之事件机制
MyPushButton.h: #ifndef MYPUSHBUTTON_H #define MYPUSHBUTTON_H #include<QPushButton> #include&l ...
- @ResponeBody 和 @RequestBody
一.补充注解?1.@ResponseBody 将数据转成json 并输出到响应流中2.@RequestBody 将请求中的json数据转换成java对象.1.1 jsp页面 增添两个点击事件. 1.2 ...
- 一步一步搭建基于ffmpeg和sdl2的流媒体播放器
一. 背景: 一步一步从资料收集.技术选型.代码编写.性能优化,动手搭建一款支持rtsp.rtmp等常用流媒体格式的视频播放器,ffmpeg用于流媒体解码,sdl2用于视频画面渲染和声音播放. 二. ...