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


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

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

     

     

    大致流程说明:

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

    2) Jenkins从Gitlab中拉取项目源码,mavne插件编译并打成jar包,然后dockerfile构建成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环境

     

    解压目录:

     

     

     

     

     

     

     

     

     

     

    然后打开目录去配置:

     

     

     

    这个地方:

     

     

     

    1
    2
    3
    4
    5
    6
    7
    //配置下载源
    <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

     

     

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 单机版
    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目录:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <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包进行单独运行:

     

     

     

    命令执行这个包:

    1
    java -jar tensquare_eureka_server-1.0-SNAPSHOT.jarm 

      

     

     

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

     

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

  • 相关阅读:
    【含面试题】高并发场景下的接口调用优化
    [iOS]-RunLoop
    【每日一题】657. 机器人能否返回原点
    基于nodejs+vue市民健身中心网上平台mysql
    Shell 编程实践
    2022.9.28
    Matlab导入log(或txt)文件,提取数据或其他信息
    前端培训丁鹿学堂:前端面试跨域之jsonp原理解析
    springboot-配置文件优先级
    【JavaSe笔记】——类和对象、this引用、构造方法、封装、static、代码块
  • 原文地址:https://www.cnblogs.com/lvrui/p/15911282.html