docker部署SonarQube流程及相關問題彙總

環境說明: 

sonarqube版本:10.4.1-community

PostgreSql版本:14.1

系統環境:centos7.6(x86_64)

部署流程

1、PostgreSql的安裝部署

在docker中拉取最新版本鏡像,命令如下:

docker pull postgres

 鏡像拉取成功後執行如下命令創建PostgreSql容器:

docker run --name postgres -e POSTGRES_PASSWORD=sonar123 -p 5432:5432 -v /home/zx/postgres/data:/var/lib/postgresql/data -d postgres

  其中數據庫用戶名爲:postgres,密碼爲:sonar123,端口爲5432,掛載本地磁盤路徑爲:/home/zx/postgres/data,鏡像名稱爲:postgres

創建成功後使用docker ps查看postgres容器是否正常啓動,並通過數據庫客戶端工具進行連接驗證。

2、創建sonar用戶

連接數據庫後執行如下SQL語句:

DROP DATABASE IF EXISTS sonarqube;
CREATE DATABASE sonarqube WITH  ENCODING = 'UTF8';
CREATE USER sonarqube WITH PASSWORD 'sonarqube';
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
GRANT ALL PRIVILEGES ON all tables in schema public TO sonarqube;

初始化PostgreSQL數據庫,創建sonarqube數據庫及用戶,並關聯授權,通過客戶端可登錄sonarqube數據庫,如下圖所示。

 3、SonarQube安裝部署

拉取SonarQube鏡像,命令如下:

docker pull sonarqube:10.4.1-community

修改宿主機最大內存映射區域數
臨時修改,系統重啓後失效,命令如下:

sysctl -w vm.max_map_count=262144

永久修改,編輯 /etc/sysctl.conf 文件,添加 vm.max_map_count=262144,命令如下:

vi /etc/sysctl.conf

創新SonarQube容器,命令如下:

docker run -d --name sonarqube -p 9000:9000 \
-v /opt/sonarqube/data:/opt/sonarqube/data \
-v /opt/sonarqube/extensions:/opt/sonarqube/extensions \
-v /opt/sonarqube/logs:/opt/sonarqube/logs \
-v /opt/sonarqube/temp:/opt/sonarqube/temp \
-e SONAR_JDBC_URL="jdbc:postgresql://127.0.0.1:5432/sonarqube?useUnicode=true&characterEncoding=utf-8" \
-e SONAR_JDBC_USERNAME="sonarqube" \
-e SONAR_JDBC_PASSWORD="sonarqube" \
-e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
sonarqube:10.4.1-community

其中數據庫ip建議改爲宿主機ip,如果sonarqube容器啓動失敗,可執行以下命令查看日誌:

docker logs -f -t --tail 200 sonarqube

本次部署遇到java.lang.IllegalArgumentException: Unable to create shared memory 等問題:

分析原因:查看文件權限發現之前使用root用戶無法讀取文件,可使用如下命令進行授權:

sudo chmod 777 /opt/sonarqube/*

再次重啓sonarqube容器,容器正常,可通過http://ip:9000進行驗證。

重啓容器命令:

docker restart sonarqube

 

 



 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章