日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker运行jenkins挂掉_【图文】Jenkins教程集成SonarQube

發布時間:2024/7/23 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker运行jenkins挂掉_【图文】Jenkins教程集成SonarQube 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是SonarQube?

看看維基百科的說明:

SonarQube與CI/CD架構圖

SonarQube與CI/CD架構圖

Docker運行SonarQube

簡單了解之后,開始安裝SonarQube.這里用Docker安裝

注:這里用mysql來存儲SonarQube的數據,SonarQube7.9起已經不在支持mysql了,可以安裝官方推薦的PostgreSQL

  • SonarQube 6.7.7
  • Docker-CE 19.03.1
  • Mysql 5.7

安裝

直接運行這個docker命令來安裝,網上其他的教程有什么掛載文件什么的,我試了都會安裝失敗,原因還是因為權限原因,因為SonarQube不是以root用戶運行的,導致沒權限讀寫掛載出來的文件夾.

注意:創建容器前一定要先保證你連的容器有對應的數據庫

docker?run?-d?--name?sonarqube?-p?9099:9000?-p?9092:9092?--link=dev_mysql:mysql?-e?SONARQUBE_JDBC_USERNAME=app?-e?SONARQUBE_JDBC_PASSWORD=app?-e?SONARQUBE_JDBC_URL="jdbc:mysql://mysql:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false"?--restart=always?sonarqube:6.7.7-community
  • --link=dev_mysql:mysql ? ? 這個命令我鏈接到了我的mysql容器,dev_mysql是容器的名字,mysql是在SonarQube容器里的別名,所以鏈接數據庫時直接用mysql這個別名就可了.

  • SONARQUBE_JDBC_USERNAME :數據庫的賬戶

  • SONARQUBE_JDBC_PASSWORD :數據庫密碼

訪問

安裝好后直接訪問9099端口,登錄的賬戶和密碼默認都是admin.首頁就是這個樣子的.

Jenkins集成SonarQube

Jenkins和SonarQube都是運行在Docker容器里的

下載和安裝插件

直接下載最新版的,然后導入,導入的方法可以看插件導入方法[1]

  • 插件下載地址:https://updates.jenkins.io/download/plugins/sonar/

SonarQube生成Token

進入SonarQube管理界面

Administration->Security->Users

然后隨便輸入一個名字,點擊生成,記下Token

添加全局憑證

類型選Secret text,然后Secret和ID輸入框都填入剛才生成的Token

設置SonarQube servers

進入 系統管理->系統設置->SonarQube servers    設置好后點保存

因為我SonarQube和Jenkins安裝在同一臺機器不同的Docker容器里的,所以這里URL直接填SonarQube的Docker容器的IP和端口

安裝SonarQube Scanner

下載壓縮包

  • 下載SonarQube Scanner壓縮包:SonarQube Scanner[2]

解壓到Jenkins掛載出來的目錄里

只有解壓到掛載出來的Jenkins的目錄里,Docker容器安裝的Jenkins才能讀取到,我這里是宿主機的/opt/jenkins掛載到了Jenkins容器里的/var/jenkins_home目錄上,所以我只要解壓到宿主機的/opt/jenkins目錄中就可以了

Jenkins配置全局工具

進入 系統管理->全局工具配置->SonarQube Scanner ? ? 找到模塊后點擊新增SonarQube Scanner

SONAR_RUNNER_HOME填你Jenkins這個Docker容器里的路徑

構建一個Maven項目

網上很多教程說要勾上這個選項:

其實這個是可選的,下面有一句話:These variables are useful when configuring a SonarQube analysis using standard build steps such as Maven, Gradle, Ant, and command line scripts.This feature is not needed if you're using "SonarQube Scanner" or "SonarScanner for MSBuild" build steps.

翻譯過來就是:因為我們這里用的就是SonarQube Scanner,所以這個我們是可以不用勾上的,但是勾上也沒影響;

開始構建

  • 具體怎么構建項目可以看:Jenkins教程-創建Maven項目[3],這里就不多介紹了

添加Execute SonarQube Scanner

在原來構建的基礎上加上Execute SonarQube Scanner,就可以了

在Analysis properties里填上構建的參數

唯一的項目標識符(必填) sonar.projectKey =tiny-config1

項目元數據(以前是必需的,自SonarQube 6.1起是可選的) sonar.projectName =tiny-config1 sonar.projectVersion = 1.0

源目錄的路徑(必需) sonar.sources = srcDir1,srcDir2

測試源目錄的路徑(可選) sonar.tests = testDir1,testDir2

Java項目編譯類的路徑(可選) sonar.java.binaries = bin

逗號分隔的庫路徑列表(可選) sonar.java.libraries = path / to / library.jar,path / to / classes / dir

附加參數 sonar.my.property =value

保存后就可以正常構建了.

錯誤解決(沒有錯誤可跳過這段)

如果在構建項目的時候,Jenkins控制臺如果報一下錯誤,這是因為SonarQube的Java版本太低造成的

升級SonarQube的Java版本

進入SonarQube的管理臺:Administration->Marketplace->SonarJava

如果你版本沒升級,右邊會有個update按鈕,點擊就可以升級了,升級完后重啟SonarQube;這邊因為我已經升級過了,所以沒有這個按鈕

構建完成后

Jenkins控制臺顯示SUCCESS就表示構建成功了

這時候就可以點擊構建項目的SonarQube直接跳轉到SonarQube控制臺了

這里就可以看到結果了

總結

到這里就可以根據SonarQube的提示去改BUG了.這BUG有點多=_=!.

在搭建過程中,最主要的就是那個SonarQube Scanner這個的安裝了,因為Jenkins都是Docker化的,所以他可以選擇自動安裝,但是我這邊選擇自動安裝卻沒用,所以就自己下載了SonarQube Scnner的包掛載到Jenkins容器里去,然后直接指定SonarQube Scnner的目錄就可以了;

參考資料

[1]

插件導入方法: https://mjava.top/jenkins/problem-jenkins-01/

[2]

SonarQube Scanner: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip

[3]

Jenkins教程-創建Maven項目: https://mjava.top/jenkins/build-jenkins-mavne/


總結

以上是生活随笔為你收集整理的docker运行jenkins挂掉_【图文】Jenkins教程集成SonarQube的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。