通過docker方式安裝sonarqube
阿新 • • 發佈:2020-09-15
Sonar 是一個用於程式碼質量管理的開源平臺,用於管理原始碼的質量 通過外掛形式,可以支援包括 java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy 等等。sonar服務搭建有很多種方式,本文介紹通過docker方式安裝sonar伺服器的流程,以供參考。
1、本次所使用的伺服器相關資訊簡單羅列
伺服器使用CenterOS 7(需連線網際網路,本文使用yum方式安裝,方便快捷),
JDK版本為JDK11(sonar對JDK的支援從7.7之後均為JDK11)
2、docker安裝,依次執行如下命令
-
sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
-
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
-
sudo yum-config-manager --enable docker-ce-nightly
-
sudo yum install docker-ce docker-ce-cli containerd.io
3、安裝docker-compose,依次執行如下命令
-
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
sudo chmod +x /usr/local/bin/docker-compose
4、安裝sonar(本文使用版本為8.2,sonar定期對docker映象檔案進行更新,如需獲取更多版本訪問https://hub.docker.com/_/sonarqube)
安裝前需啟動docker服務
systemctl daemon-reload
systemctl restart docker.service
#啟動docker
$systemctlstartdocker
#拉取postgres映象
$dockerpullpostgres
#拉取sonarqube映象
$dockerpullsonarqube
#檢視下載的映象
$dockerimages
然後使用命令docker-compose -f docker-compose.yml up
# 構建並後臺啟動容器 $ docker-compose up -d # 檢視執行容器 $ docker-compose ps 或 $ docker ps # 動態檢視日誌 $ docker-compose logs -f 或 $ docker logs -f sonar # 重啟 $ docker-compose restart
docker-compose.yml檔案存放在伺服器執行命令當前目錄,該檔案內容如下
version: "2" services: sonarqube: image: sonarqube:8.2-community depends_on: - db ports: - "9000:9000" networks: - sonarnet environment: SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: sonar volumes: - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_logs:/opt/sonarqube/logs - sonarqube_temp:/opt/sonarqube/temp db: image: postgres networks: - sonarnet environment: POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar volumes: - postgresql:/var/lib/postgresql # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52 - postgresql_data:/var/lib/postgresql/data networks: sonarnet: driver: bridge volumes: sonarqube_data: sonarqube_extensions: sonarqube_logs: sonarqube_temp: postgresql: postgresql_data:
5、訪問sonar及使用maven進行檢查
登入使用http://x.x.x.x:9000/
使用者名稱/密碼:admin/admin
maven檢查可配置settings.xml檔案,配置內容如下
<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.login>admin</sonar.login> <sonar.password>admin</sonar.password> <sonar.host.url>http://x.x.x.x:9000</sonar.host.url> <sonar.inclusions>**/*.java</sonar.inclusions> </properties> </profile> <activeProfiles> <activeProfile>sonar</activeProfile> </activeProfiles>
cmd到需要掃描工程目錄下,首先需要所掃描工程通過maven編譯,然後執行sonar掃描,依次執行如下命令
-
mvn clean install
//BUILD SUCCESS之後執行下條命令 -
mvn sonar:sonar
//BUILD SUCCESS之後,瀏覽器訪問sonar服務,掃描結果可能需要後臺分析一會才會呈現出來。
到此,docker安裝sonar及maven掃描java程式碼就完成了,希望能對你有所幫助,感謝閱讀。