Docker部署SonarQube的詳細(xì)流程
前言
本篇來學(xué)習(xí)使用docker部署代碼檢測工具–SonarQube
簡介
SonarQube: 是一款開源代碼檢測工具。本篇介紹通過 docker 來安裝。大概的一個(gè)運(yùn)作流程是這樣的,先通過 sonar-scanner 插件掃描代碼,把數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫,sonarQube 讀取數(shù)據(jù)庫,將數(shù)據(jù)庫展現(xiàn)在 web 平臺。
安裝MySQL
1. 拉取mysql 鏡像
(sonarqube:7.4 不支持 mysql:5.7 以上)
docker pull mysql:5.7
2. 創(chuàng)建網(wǎng)絡(luò)
docker network create sonarqube-tier
3. 創(chuàng)建并運(yùn)行容器
- 創(chuàng)建掛載目錄:mkdir /usr/mysql
- 執(zhí)行下面命令啟動(dòng)容器
docker run --name mysql -d -p 3306:3306 --net sonarqube-tier -v /usr/mysql/conf:/etc/my.cnf.d -v /usr/mysql/logs:/logs -v /usr/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ --restart always \ --privileged=true \ --network-alias mysql \ mysql:5.7
參數(shù)說明
-p 3306:3306:將容器 3306 映射到宿主機(jī)端口 3306
-v /usr/mysql/conf:/etc/my.cof.d:將容器下的 /etc/my.cof.d 掛載到宿主機(jī) /usr/mysql/conf
-e MYSQL_ROOT_PASSWORD=123456:設(shè)置 root 密碼 123456
--restart always:容器退出時(shí)總是重啟
--privileged=true:掛載主機(jī)目錄Docker訪問出現(xiàn)Permission denied的解決辦法
--net sonarqube-tier:容器接入自定義網(wǎng)絡(luò)
--network-alias mysql:給容器起個(gè)網(wǎng)絡(luò)別名
查是否正常運(yùn)行:docker ps
4. 允許外網(wǎng)訪問
進(jìn)入容器
docker exec -it mysql /bin/bash
設(shè)置mysql訪問權(quán)限
mysql -uroot -p # 密碼 123456 GRANT ALL ON *.* TO 'root'@'%'; #所有網(wǎng)絡(luò)都可訪問 create database sonar; #創(chuàng)建 sonarqube 數(shù)據(jù)庫 # 添加遠(yuǎn)程登錄用戶:sonar ,并授予權(quán)限。 CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar'; GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%'; flush privileges; # 刷新權(quán)限
安裝SonarQube
1.拉取鏡像
7.6及以上的版本與 jenkins 的 sonar-scanner 插件暫時(shí)不兼容,我這里拉取的是7.4-community
docker pull sonarqube:7.4-community
2. 創(chuàng)建工作目錄
mkdir -p /data/sonarqube
3.運(yùn)行容器
docker run -d --name sonartest sonarqube:7.4-community
復(fù)制容器內(nèi)重要文件到宿主機(jī)
docker cp sonartest:/opt/sonarqube/conf /data/sonarqube docker cp sonartest:/opt/sonarqube/data /data/sonarqube docker cp sonartest:/opt/sonarqube/logs /data/sonarqube docker cp sonartest:/opt/sonarqube/extensions /data/sonarqube
刪除容器
docker rm sonartest
修改文件夾權(quán)限
chmod -R 777 /data/sonarqube/
4.創(chuàng)建容器并運(yùn)行
docker run -d --name sonar -p 9090:9000 \ -e ALLOW_EMPTY_PASSWORD=yes \ -e SONARQUBE_DATABASE_USER=sonar \ -e SONARQUBE_DATABASE_NAME=sonar \ -e SONARQUBE_DATABASE_PASSWORD=sonar \ -e SONARQUBE_JDBC_URL="jdbc:mysql://mysql:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \ --net sonarqube-tier \ --privileged=true \ -v /data/sonarqube/logs:/opt/sonarqube/logs \ -v /data/sonarqube/conf:/opt/sonarqube/conf \ -v /data/sonarqube/data:/opt/sonarqube/data \ -v /data/sonarqube/extensions:/opt/sonarqube/extensions\ sonarqube:7.4-community
5.打開SonarQube頁面
- 瀏覽輸入http://宿主機(jī)ip:9090
- 初始賬號和密碼是admin
6.安裝中文插件
插件下載地址:https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.24
- 將下載的jar包移動(dòng)到 /data/sonarqube/extensions/plugins
- 重啟sonarqube:docker restart sonarqube鏡像id
到此這篇關(guān)于Docker部署SonarQube的文章就介紹到這了,更多相關(guān)Docker部署SonarQube內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐
Spring Boot和Docker,可以方便地將應(yīng)用程序部署到不同的環(huán)境中,本文主要介紹了SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03docker中的volume和bind?mount區(qū)別講解
這篇文章主要介紹了docker的volume和bind?mount區(qū)別,介紹了volume?相對于bind?mount的優(yōu)點(diǎn)及volume操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08詳解利用ELK搭建Docker容器化應(yīng)用日志中心
這篇文章主要介紹了詳解利用ELK搭建Docker容器化應(yīng)用日志中心,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺服務(wù)器3主3從)
本文主要介紹了docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺服務(wù)器3主3從),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07使用docker-compose.yml構(gòu)建鏡像的方法
docker-compose是docker提供的一個(gè)命令行工具,用來定義和運(yùn)行由多個(gè)容器組成的應(yīng)用,這篇文章主要介紹了使用docker-compose.yml構(gòu)建鏡像的方法,需要的朋友可以參考下2023-05-05遷移變更Docker默認(rèn)數(shù)據(jù)存儲(chǔ)目錄的步驟詳解
Docker安裝的默認(rèn)數(shù)據(jù)目錄為/var/lib/docker,但是如果/目錄掛載的磁盤空間不夠,就需要遷移docker數(shù)據(jù)到其他目錄,接下來本就給大家介紹遷移變更Docker默認(rèn)數(shù)據(jù)存儲(chǔ)目錄的操作步驟,需要的朋友可以參考下2023-12-12