Devops 開發運維高階篇之Jenkins+Docker+SpringCloud微服務持續整合(上)

隱姓埋名4869發表於2022-02-21

Devops 開發運維高階篇之Jenkins+Docker+SpringCloud微服務持續整合(上)

Jenkins+Docker+SpringCloud持續整合流程說明

 

 

大致流程說明:

1) 開發人員每天把程式碼提交到Gitlab程式碼倉庫

2) Jenkins從Gitlab中拉取專案原始碼,編譯並打成jar包,然後構建成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環境

 

解壓目錄:

 

 

 

 

 

 

 

 

 

 

然後開啟目錄去配置:

 

 

 

這個地方:

 

 

 

//配置下載源
<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

 

 

 

# 單機版
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目錄:

<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包進行單獨執行:

 

 

 

命令執行這個包:

java -jar tensquare_eureka_server-1.0-SNAPSHOT.jarm 

  

 

 

然後瀏覽器訪問:http://localhost:10086

 

由此可以看出,對於打的jar包是可以單獨在本地進行執行的

相關文章