ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins+Docker+SpringCloud微服务持续集成(一):微服务部署

2022-03-06 22:05:11  阅读:230  来源: 互联网

标签:服务 SpringCloud jar eureka maven tensquare 服务器 Jenkins Docker


链接:https://pan.baidu.com/s/1HR3Q-cojnCidRy1xrdlOxg
提取码:7m56
--来自百度网盘超级会员V3的分享

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

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

服务列表

服务器名称 IP地址 安装的软件
代码托管服务器 192.168.195.180 Gitlab
持续集成服务器 192.168.195.181 Jenkins,Maven,Docker18.06.1-ce
Docekr Harbor服务器 192.168.195.183 Docker18.06.1-ce,Harbor1.9.2
生产部署服务器 192.168.195.184 Docker18.06.1-ce

SpringCloud微服务源码概述
项目架构:前后端分离
后端技术栈:SpringBoot+SpringCloud+SpringDataJpa(Spring全家桶)
微服务项目结构:
image

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

数据库结构:
image

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

微服务配置分析:

  • tensquare_eureka
  • tensquare_zuul
  • tensquare_admin_service
  • tensquare_gathering

本地部署(1)-SpringCloud微服务部署
本地运行微服务
1)逐一启动微服务
微服务项目包解压,目录在idea中打开,idea会自动下载相关组件插件(等待时间较长)
image

缺少依赖组建
安装maven
Windows本地配置maven环境
Maven官网:https://maven.apache.org/download.cgi
image

解压目录
image

添加两个变量
image
image
image

修改配置文件组建下载地址设置
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>

image

image

自动更新
image

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

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

配置文件修改为单机版本微服
启动enreka服务
修改配置文件application.yml

点击查看代码
修改配置文件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 #关闭自我保护
![image](https://www.icode9.com/i/l/?n=22&i=blog/2387805/202203/2387805-20220301164434764-616342624.png) ![image](https://www.icode9.com/i/l/?n=22&i=blog/2387805/202203/2387805-20220301164439818-331306461.png)

访问enreka地址
image

开启网关zuul
image

开启权限中心
image

开启活动的微服务
image

所有服务全部开启
image

在eureka页面中服务全部注册成功
image

测试:
安装postman工具

运行并打开
image
image
image

登录成功
image

获取token
image

获取数据库信息成功
image

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

问题报错:
image

原因:没有配置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>
![image](https://www.icode9.com/i/l/?n=22&i=blog/2387805/202203/2387805-20220301164819177-155319915.png)

打包后在target下产生jar包
image

在target目录中生成jar包
image

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

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

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

本地部署(2)-前端静态web网站
前端技术栈:NodeJS+VueJS+ElementUI
1)本地运行(安装nodejs)

Vscode终端中运行:npm run dev
image

解决方法:
安装Python2
image

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

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

再执行cnpm install node-sass
image

最后执行:cnpm run dev 成功
image
image

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

标签:服务,SpringCloud,jar,eureka,maven,tensquare,服务器,Jenkins,Docker
来源: https://www.cnblogs.com/Rui-Lin/p/15951150.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有