iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
DevOps

從0開始學習DevOps,並部署CICD至Java專案中系列 第 20

什麼是SonarQube?使用docker 下載 SonarQube

  • 分享至 

  • xImage
  •  

什麼是SonarQube?

https://ithelp.ithome.com.tw/upload/images/20231005/201620588C9H6WpZp8.png

(圖片引用自官方)

SonarQube 是一個可以用來管理程式品質的工具,針對程式的撰寫方式會給予檢核與建議,是一個開源的工具,並支持多種語言,以及可以再多種工具中套用。(如上圖)

SonarQube基於需要儲存程式掃描的結果,所以需要跟DB結合一起使用,所以在配置SonarQube時,可以使用docker-compose.yml 一起執行DB與SonarQube。

關於Sonarqube與DB 需要特別留意的事項

SonarQube 一定要結合DB一起運行,才可以儲存對於程式分析結果的資料,需要留意的是,SonarQube 7.9版本之後,就不在支援使用MySQL作為DB,所以如果是7.9以後的版本,目前官方是只能結合以下DB使用:Oracle / Microsoft SQL Server / PostgreSQL。

所以以下範例是結合PostgreSQL使用。

詳情可瀏覽官方說明。

使用Docker 下載 SonarQube

sonarqube官方

先使用docker pull docker pull sonarqube:10.2.0-community

跳轉到我要的資料夾路徑,創建一個資料夾,並新增docker-compose.yml文件,來統一管理SonerQube container 以及 SonarQube db container

https://ithelp.ithome.com.tw/upload/images/20231005/20162058Ciwr9ZOIp7.png

使用 vi docker-compose.yml 編輯docker-compose.yml文件

(建議也可以直接把檔案丟到IDE環境編輯,因為當錯誤IDE會提示,比較不會產生錯誤)

編輯完後在此資料夾目錄下執行 docker-compose up

(關於compose文件的說明,於前幾則配置Java web 以及 db時已有細部說明,這邊就不再特別論述內容)

⇒ 下方會同時新增User為sonar,以及database 為 sonar,就不需要再進到postgresSQL資料庫中新增了。

version: '3.7'

networks:
  sonarqube_net:
    driver: bridge

services:
  db:
    image: postgres
    container_name: postgres
    networks:
      - sonarqube_net
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    ports:
      - "5432:5432"

  sonarqube:
    image: sonarqube:10.2.0-community
    container_name: sonarqube
    networks:
      - sonarqube_net
    ports:
      - "9000:9000"
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar

啟動成功後,使用localhost:9000 就可以拜訪SonarQube 頁面囉~

https://ithelp.ithome.com.tw/upload/images/20231005/201620586fv6SsnWqX.png

登入SonarQube頁面

預設帳號密碼會是 admin / admin 123456

https://ithelp.ithome.com.tw/upload/images/20231005/20162058x2i5THXEr8.png

登入後會請你初次修改密碼,改完後就可以進到主要頁面

https://ithelp.ithome.com.tw/upload/images/20231005/20162058wj01XaEyc2.png


上一篇
Jenkins 配置 Maven、JDK、以及取得本地微服務一起打包專案
下一篇
整合SonarQube到Jenkins
系列文
從0開始學習DevOps,並部署CICD至Java專案中30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言