Docker學習10-sonarqube+jenkins持續集成代碼審計(上)

前言

1.SonarQube簡介
       SonarQube是一種自動代碼審查工具,用於檢測代碼中的錯誤,漏洞和代碼味道。它能夠與您現有的工做流程集成,以實現跨項目分支和提取請求的連續代碼檢查,開源平臺,用於管理源代碼的質量。同時  SonarQube 還對大量的持續集成工具提供了接口支持,能夠很方便地在持續集成中使用  SonarQube。此外, SonarQube 的插件還能夠對 Java 之外的其餘編程語言提供支持,對國際化以及報告文檔化也有良好的支持。
   
2.SonarQube的使用範圍   
        經過插件形式,能夠支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語言的代碼質量管理與檢測,針對不一樣的編程語言其所提供的分析方式也有所不一樣: 對於全部支持的編程語言,SonarQube 都提供源了代碼的靜態分析功能; 對於某些特定的編程語言,SonarQube 提供了對編譯後代碼的靜態分析功能。
 
3.SonarQube工做原理
        SonarQube 並非簡單地將各類質量檢測工具的結果(例如 FindBugs,PMD 等)直接展示給客戶,而是經過不一樣的插件算法來對這些結果進行再加工,最終以量化的方式來衡量代碼質量,從而方便地對不一樣規模和種類的工程進行相應的代碼質量管理。 SonarQube 在進行代碼質量管理時,會從圖 1 所示的七個緯度來分析項目的質量。

必備環境:html

一、dockerjava

  • docker-compose
  • sonarqube

二、jenkinspython

三、git源碼地址linux

1、docker環境安裝

一、docker 安裝

linux下直接使用yum安裝,或者其它安裝方法:git

yum  -y install  docker-ce

二、docker-compose 安裝

第一種:pip 安裝github

一、首先檢查 pip 環境:pip -Vweb

[root@iZbp19lugf22zbsubsf1y6Z ~]# pip -V
pip 19.1.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)

二、如未顯示 pip 版本號,本身解決。接下來輸入:pip install docker-compose算法

複製代碼
[root@iZbp19lugf22zbsubsf1y6Z easymock]# pip install docker-compose
Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/
Requirement already satisfied: docker-compose in /root/python36/lib/python3.6/site-packages (1.25.1)
Requirement already satisfied: cached-property<2,>=1.2.0 in /root/python36/lib/python3.6/site-packages (from docker-compose) (1.5.1)
Requirement already satisfied: docopt<1,>=0.6.1 in /root/python36/lib/python3.6/site-packages (from docker-compose) (0.6.2)
Collecting requests<3,>=2.20.0
  Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
     |????????????????????????????????| 61kB 23.4MB/s ...
複製代碼

三、驗證版本輸入:docker-compose versionsql

[root@iZbp19lugf22zbsubsf1y6Z easymock]# docker-compose version
docker-compose version 1.25.1, build a82fef0
docker-py version: 4.1.0
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017

如提示沒有找到此命令,則須要添加軟鏈接:(注:是你本身的安裝路徑,別複製個人 )docker

ls -n /root/python3/bin/docker-compose /usr/bin/

第二種:下載安裝 docker-compose

一、運行命令,下載 Docker Compose:

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

二、加權限:

chmod +x /usr/local/bin/docker-compose

三、添加軟鏈接:

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

四、驗證版本輸入:docker-compose version

[root@iZbp19lugf22zbsubsf1y6Z easymock]# docker-compose version
docker-compose version 1.25.1, build a82fef0
docker-py version: 4.1.0
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017

三、sonarqube 安裝

一、系統配置,避免啓動問題

# 系統配置,避免啓動問題
echo "vm.max_map_count=262144" >> /etc/sysctl.conf

查看命令:sysctl -p

二、建立掛載目錄

# 建立目錄
mkdir -p ~/sonarqube && cd ~/sonarqube

# 建立全部的sonarqube映射文件
mkdir -p ~/sonarqube/postgres && \
mkdir -p ~/sonarqube/data && \
mkdir -p ~/sonarqube/extensions && \
mkdir -p ~/sonarqube/logs && \
mkdir -p ~/sonarqube/conf

# 建立數據庫掛載
mkdir -p ~/sonarqube/postgresql &&\
mkdir -p ~/sonarqube/datasql

# 目錄設置爲 777 權限,避免權限問題
chmod 777 ./*

三、建立 docker-compose.yml 文件

 在sonarqube目錄下,將如下內如複製到yml文件:vi docker-compose.yml

version: '3'
services: 
  postgres:    
    image: postgres
    restart: always
    container_name: sonarqube_postgres
    ports:
      - 5432:5432
    volumes:
      - ~/sonarqube/postgresql/:/var/lib/postgresql
      - ~/sonarqube/datasql/:/var/lib/postgresql/data
    environment:
      TZ: Asia/Shanghai    
      POSTGRES_USER: sonar   
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    networks: 
      - sonar-network
  sonar:
    image: sonarqube
    restart: always 
    container_name: sonarqube
    depends_on:
      - postgres
    volumes:
      - ~/sonarqube/extensions:/opt/sonarqube/extensions
      - ~/sonarqube/logs:/opt/sonarqube/logs
      - ~/sonarqube/data:/opt/sonarqube/data
      - ~/sonarqube/conf:/opt/sonarqube/conf
    ports:
      - 9000:9000
    environment:
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
    networks: 
      - sonar-network
networks:
  sonar-network:
    driver: bridge

四、docker-compose 用法

①啓動:docker-compose up -d

②中止:docker-compose down

[root@JenkinsGod sonarqube]# docker-compose up -d
Removing network sonarqube_sonar-network
Creating network "sonarqube_sonar-network" with driver "bridge"
Creating sonarqube_postgres ... done
Creating sonarqube          ... done

五、瀏覽器訪問:ip+端口,如:192.168.11.111:9000

管理員帳號密碼都是:admin

六、sonarqube插件安裝

方法一(不推薦,好慢):在sonarqube web 上的 Marketplace 安裝。

 方法二:下載jar包,丟到插件目錄下

這裏有支持一部分語言,咱們還能夠漢化sonarqube,插件我直接分享在:

連接:https://pan.baidu.com/s/1wIMNDYE6JHxiKFeCycCkdQ 
提取碼:gsxl 
複製這段內容後打開百度網盤手機App,操做更方便哦

官方jar包下載地址:https://docs.sonarqube.org/latest/analysis/languages/java/

但願能有你所須要的。

 七、ftp將jar上傳至服務器

上傳至該目錄:/extensions/downloads

如個人:

 

 八、重啓:

①中止:docker-compose down

②重啓:docker-compose up -d

[root@JenkinsGod sonarqube]# docker-compose down
Stopping sonarqube          ... done
Stopping sonarqube_postgres ... done
Removing sonarqube          ... done
Removing sonarqube_postgres ... done
Removing network sonarqube_sonar-network
[root@JenkinsGod sonarqube]# docker-compose up -d

Creating network "sonarqube_sonar-network" with driver "bridge"
Creating sonarqube_postgres ... done
Creating sonarqube          ... done
[root@JenkinsGod sonarqube]# 
[root@JenkinsGod sonarqube]# 

2、jenkins 安裝與插件安裝

一、jenkins 安裝

詳細能夠參考,http://www.javashuo.com/article/p-bmraqczi-mo.html

二、SonarQube Scanner 插件安裝

路徑:/pluginManager/

安裝後重啓jenkins

 

歡迎來你們QQ交流羣一塊兒學習:482713805

相關文章
相關標籤/搜索