Docker執行sonarqube-(程式碼質量檢測平臺)
sonarqube是什麼
SonarQube是用於持續檢查程式碼質量的開源平臺。
可用於持續整合,持續部署流程中的程式碼檢測環節。
idea和jenkins都提供了外掛配合使用。
liunx推薦配置環境
liunx環境配置不合適的話,啟動時會報錯!
我後面的一個啟動時報錯就是沒有達到要求的配置導致的。
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096
docker-compose.yml
version: '3.1' services: db: image: postgres container_name: postgres restart: always db: image: postgres container_name: postgres restart: always ports: - 5432:5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: 123456 POSTGRES_DB: sonar PGDATA: /var/lib/postgresql/data/pgdata volumes: - /usr/local/docker/postgre/data:/var/lib/postgresql/data/pgdata sonarqube: image: sonarqube container_name: sonarqube restart: always ports: - 8007:9000 environment: sonar.jdbc.username: postgres sonar.jdbc.password: 123456 sonar.jdbc.url: jdbc:postgresql://db:5432/sonar links: - db volumes: - /usr/local/docker/sonarqube/conf:/opt/sonarqube/conf - /usr/local/docker/sonarqube/extensions:/opt/sonarqube/extensions - /usr/local/docker/sonarqube/logs:/opt/sonarqube/logs - /usr/local/docker/sonarqube/data:/opt/sonarqube/data
首先部署PostgreSQL資料,也可以使用其他資料庫。預設情況下,映像將使用不適合生產的嵌入式H2資料庫。
H2是一個記憶體資料庫,重啟後資料就沒有了。
推薦使用其他資料庫。
配置說明
環境變數配置:
sonar.jdbc.username : 資料庫賬號
sonar.jdbc.password : 資料庫密碼
sonar.jdbc.url: jdbc : 資料庫連線驅動
對映配置:
/opt/sonarqube/conf : 配置檔案,例如 sonar.properties
/opt/sonarqube/data:資料檔案,例如嵌入式H2資料庫和Elasticsearch索引
/opt/sonarqube/logs:包含有關訪問,Web程序,CE程序,Elasticsearch日誌的SonarQube日誌
/opt/sonarqube/extensions:外掛,例如語言分析器 經提供了支援的資料庫(Oracle除外)的驅動程式。不要更換提供的驅動程式;他們是唯一受支援的。對於Oracle,請將JDBC驅動程式複製到中$SONARQUBE_HOME/extensions/jdbc-driver/oracle。
遇到的問題1
docker-compose up -d
啟動時報錯:
解決方案
賦許可權:
chmod -R 777 /usr/local/docker/sonarqube
遇到的問題2
啟動時報錯:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決方案
切換到root使用者
執行命令:
sysctl -w vm.max_map_count=262144
檢視結果:
sysctl -a|grep vm.max_map_count
顯示:
vm.max_map_count = 262144
上述方法修改之後,如果重啟虛擬機器將失效,所以:
解決辦法:
在 /etc/sysctl.conf檔案最後新增一行
vm.max_map_count=262144
即可永久修改