微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐