文章目录

  • 一、Jenkins+Docker+SpringCloud持续集成流程说明
  • 二、SpringCloud微服务源码概述
  • 三、本地部署SpringCloud微服务部署
  • 1、逐一启动微服务
  • 2、本地数据库导入
  • 3、安装postman工具
  • 4、idea环境中打包eureka的jar
  • 5、本地部署前端静态


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

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins

大致流程说明:
1)开发人员每天把代码提交到gitlab代码仓库中
2)Jenkins从gitlab中拉取项目源码,编译并打包成jar包,然后构建成docker镜像,将镜像上传到harbor私有仓库
3)Jenkins发送SSH远程登陆,让生产部署服务器到harbor私有仓库拉去镜像到本地,然后创建容器
4)用户访问容器

二、SpringCloud微服务源码概述

项目架构:前后端分离
后端技术栈:SpringBoot+SpringCloud+SpringDataJpa(Spring全家桶

微服务项目结构

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_02

tensquare_parent:父工程,存放基础配置
tensquare_common:通用工程,存放工具tensquare_eureka_server;
SpringCloud的Eureka注册中心
tensquare_zuul:SpringCloud的网关服务
tensquare_admin_service:基础权限认证中心,负责用户认证(使用JWT认证)
tensquare_gathering:一个简单的业务模块,活动微服务相关逻辑
数据库结构

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_03

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

tensquare_gathering:活动微服务数据库。对应tensquare_gathering微服务

微服务配置分析

tensquare_eureka 
tensquare_zuul 
tensquare_admin_service 
tensquare_gathering

三、本地部署SpringCloud微服务部署

1、逐一启动微服务

将文件放在C盘idea的目录下

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_04

>点击file----open—选择tenquare_parent文件

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_05

生成新的页面—此时,若缺少依赖组件,原因是本地没有maven文件,则无法下载微服务项目

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_06

maven官网:https://maven.apache.org/download.cgi

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_07

解压目录

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_08


将文件放置于C盘下

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_09

添加变量

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_10


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_11


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_12


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_13


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_14

C:\apache-maven-3.8.4-bin\apache-maven-3.8.4\conf

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_15

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_16

//配置组建仓库地址<localRepository>E:/repo</localRepository>

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

进入idea

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_17


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_18


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_19

记得重启IDEA,否则idea无法识别maven,重启后,自动更新

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_20

解决SpringBoot启动类报错:can not resolve method 'run(java.lang.class.string[])'问题

清除内存

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_21

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_22


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_23


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_24


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_25


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_26

测试是否安装成功----运行tensquare_eureka,若无报错,则成功

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_27

配置文件修改为单机版本微服务-----启动eureka----进入eureka_server

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_28


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_29

# 单机版
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 #关闭自我保护

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_30

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_31


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_32

进入tensquare_zuul

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_33

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_34


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_35


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_36

进入admin_service

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_37


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_38

进入tensquare_gathering

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_39


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_40


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_41

2、本地数据库导入

安装mysql5.7

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_42


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_43

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_44


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_45

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_46


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_47


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_48


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_49


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_50


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_51


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_52


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_53


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_54


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_55


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_56

创建两个数据库

create database tensquare_gathering;/tensquare_user;
source c:/tensquare_gathering.sql;/tensquare_user.sql;

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_57


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_58

3、安装postman工具

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_59

运行并打开

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_60


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_61


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_62

如果出现500错误,请重刷新send,即可登陆

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_63

获取token

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_64


复制到文本中

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_65


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_66

4、idea环境中打包eureka的jar

mvn clean package

在底层写入mvn clean package

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_67

报错:原因没有配置jdk目录

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_68

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_69

<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>

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_70


在target目录中生成jar包

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_71


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_72


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_maven_73


本地运行微服务的jar包

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_74

打开CMD---->进入C盘,在C盘下直接CMD

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_75


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_微服务_76

5、本地部署前端静态

web网站-----NodeJS+VueJS+ElementUI

1、安装nodejs

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_77


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_spring cloud_78

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

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

再执行cnpm install node-sass

最后执行:cnpm run dev  成功

Jenkins通过GitHub部署springcloud项目 jenkins springcloud_ci_79


Jenkins通过GitHub部署springcloud项目 jenkins springcloud_jenkins_80