Jenkins+Docker+SpringCloud微服务持续集成上(她说,天总会亮的。那么,我们一起记录下,凌晨前的人生。)

Jenkins+Docker+SpringCloud微服务持续集成(上)
Jenkins+Docker+SpringCloud持续集成流程说明
大致流程说明:
1) 开发人员每天把代码提交到Gitlab代码仓库
2) Jenkins从Gitlab中拉取项目源码,编译并打成jar包,然后构建成Docker镜像,将镜像上传到Harbor私有仓库。
3) Jenkins发送SSH远程命令,让生产部署服务器到Harbor私有仓库拉取镜像到本地,然后创建容器。
4) 最后,用户可以访问到容器
 
服务列表(红色的软件为需要安装的软件,黑色代表已经安装)
 
服务器名称
IP地址
安装的软件
代码托管服务器
192.168.153.10
Gitlab
持续集成服务器
192.168.153.20
Jenkins,Maven,Docker18.06.1-ce
Docker仓库服务器
192.168.153.30
Docker18.06.1-ce,Harbor1.9.2
生产部署服务器
192.168.153.40
Docker18.06.1-ce
 
SpringCloud微服务源码概述
项目架构:前后端分离
后端技术栈:SpringBoot+SpringCloud+SpringDataJpa(Spring全家桶)   
微服务项目结构:
tensquare_parent: 父 工 程 , 存 放 基 础 配 置      
tensquare_common:通用工程,存放工具类
tensquare_eureka_server:SpringCloud的Eureka注册中心
tensquare_zuul:SpringCloud 的 网 关 服 务 tensquare_admin_service:基础权限认证中心,负责用户认证(使用JWT认证) tensquare_gathering:一个简单的业务模块,活动微服务相关逻辑
数据库结构:
tensquare_user:用户认证数据库,存放用户账户数据。对应tensquare_admin_service微服务tensquare_gathering:活动微服务数据库。对应tensquare_gathering微服务
微服务配置分析:
tensquare_eureka tensquare_zuul tensquare_admin_service tensquare_gathering
 
 
本地部署(1)-SpringCloud微服务部署
本地运行微服务                    
1)逐一启动微服务    
微服务项目包解压,目录在idea中打开,idea会自动下载相关组件插件(等待时间较长)
 

 

缺少依赖组建
安装maven
Windows本地配置maven环境

 

解压目录

 

 

 
添加两个变量
 

 

 

 

 

修改配置文件组建下载地址设置
E:\apache-maven-3.8.4\conf\settings.xml
//配置组建仓库地址
<localRepository>E:/repo</localRepository>
//配置下载源
<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/repository/public </url>
</mirror>

 

 

 
 
 
自动更新

 

 

 

 

 

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

 

 

 

 

配置文件修改为单机版本微服
启动enreka服务
修改配置文件application.yml
# 单机版
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 #关闭自我保护

 

 

 
 
 
访问enreka地址

 

 

 
开启网关zuul先修改网关的yaml文件

 

 

 

开启权限中心

 

 

 
 
 
开启活动的微服务

 

 

 
 
 
所有服务全部开启

 

 

 
在eureka页面中服务全部注册

 

 

 
测试:
安装postman工具
运行并打开
 

 

 

登录成功

 

 

 
获取token

 

 

 
eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMTk0MjgxNTMzMjMwNDE5OTY4Iiwic3ViIjoiYWRtaW4iLCJpYXQiOjE2NDUwMzEzMjAsInJvbGVzIjoiYWRtaW4iLCJleHAiOjE2NDUwMzMxMjB9.fI7kq2V4SA6dYn0p-LShUJTZEfD9zl7r8ZDA_vAI4e0
获取数据库信息成功

 

 

 
 
在idea环境中先打包eureka的jar(使用:mvn clean package)
需要等待下载

 

 

 
问题报错:
原因:没有配置jdk目录
解决方法:

 

 

打包后在target下产生jar包

 

 

 
在target目录中生成jar包

 

 

2) 
 
本地运行微服务的jar包

 

 

 
打开cmd运行
java -jar xxx.jar
注意:在运行前,关闭idea中的eureka服务,不然会出现冲突

 

本地浏览器http://localhost:10086

 

查看效果,成功!
本地部署(2)-前端静态web网站
前端技术栈:NodeJS+VueJS+ElementUI
1)本地运行(安装nodejs)
 
Vscode终端中运行:npm run dev
 

 

解决方法:
安装Python2

 

 

 
npm install -g cnpm --registry=https://registry.npm.taobao.org

 

 

 
使用cmd切换到tensquareAdmin目录下执行cnpm uninstall node-sass

 

再执行cnpm install node-sass

 

最后执行:cnpm run dev  成功
 
 
 
 
 
 

 

1)打包静态web网站
npm run build
打包后,产生dist目录的静态文件
2) 部署到nginx服务器
把dist目录的静态文件拷贝到nginx的html目录,启动nginx
3)启动nginx,并访问
http://localhost:82
 


posted @ 2022-02-23 15:00  十一没有撤退可言!  阅读(114)  评论(0编辑  收藏  举报