直接起容器報錯:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] #修改宿主機的環境變量 sudo vi /etc/sysctl.conf vm.max_map_count=655360 sudo sysctl -p #啟動postgres容器 docker run --name pgdb -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -p 5433:5432 -v /data/postgresql/data:/var/lib/postgresql/data -d postgres docker run --name sq --link pgdb -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://pgdb:5432/sonar -p 19000:9000 -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions -v /data/sonarqube/logs:/opt/sonarqube/logs -d sonarqube:8.3.1-community
問題解決:https://github.com/SonarSource/docker-sonarqube/issues/282
注:max_map_count文件包含限制一個進程可以擁有的VMA(虛擬內存區域)的數量。虛擬內存區域是一個連續的虛擬地址空間區域。在進程的生命周期中,每當程序嘗試在內存中映射文件,鏈接到共享內存段,或者分配堆空間的時候,這些區域將被創建。調優這個值將限制進程可擁有VMA的數量。限制一個進程擁有VMA的總數可能導致應用程序出錯,因為當進程達到了VMA上線但又只能釋放少量的內存給其他的內核進程使用時,操作系統會拋出內存不足的錯誤。如果你的操作系統在NORMAL區域僅占用少量的內存,那么調低這個值可以幫助釋放內存給內核用。
docker run --name pgdb --restart always -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -p 5433:5432 -v /data/postgresql/data:/var/lib/postgresql/data -d postgres docker run --name sonarqube --restart always --link pgdb -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://pgdb:5432/sonar -Dsonar.search.javaAdditionalOpts=-Dnode.store.allow_mmapfs=false -p 19000:9000 -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions -v /data/sonarqube/logs:/opt/sonarqube/logs -d sonarqube:8.3.1-community
注:添加-Dnode.store.allow_mmapfs=false
到sonar.search.javaAdditionalOpts
,您將無法使用nmap運行ES。
問題解決摘自:https://community.sonarsource.com/t/unable-to-disable-mmapfs-use-in-elasticsearch/11413
sonar.login=admin sonar.password=admin sonar.jdbc.url=jdbc:mysql://10.0.0.7:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.web.javaOpts=-server
啟動sonarqueb的docker容器
插件地址:https://binaries.sonarsource.com/
插件地址:https://github.com/
介紹:這里我們演示直接在sonarqube安裝也會說明把插件安裝到目錄下(網絡不好,插件直接下載不下來)。
8.3.1版本的插件總表:https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/
官方插件下載地址:https://binaries.sonarsource.com/Distribution/
8.3.1版本官方文檔下載插件:https://docs.sonarqube.org/latest/analysis/languages/csharp/
默認安裝插件位置:/opt/sonarqube/extensions/plugins
。(docker 8.3.1版本目錄地址 ,后期可以進入docker容器進行find / -name "plugins"
查找)這里需要注意sonarqube版本的不同中文插件的安裝也會不同,
中文插件版本:
中文包插件安裝:
wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-8.3/sonar-l10n-zh-plugin-8.3.jar docker cp sonar-l10n-zh-plugin-8.3.jar sq:/opt/sonarqube/extensions/plugins/
java插件安裝:
wget https://binaries.sonarsource.com/Distribution/sonar-java-plugin/sonar-java-plugin-6.3.0.21585.jar docker cp sonar-java-plugin/sonar-java-plugin-6.3.0.21585.jar sq:/opt/sonarqube/extensions/plugins/
python插件安裝:
wget https://binaries.sonarsource.com/Distribution/sonar-python-plugin/sonar-python-plugin-2.9.0.6410.jar docker cp sonar-python-plugin-2.9.0.6410.jar sq:/opt/sonarqube/extensions/plugins/
C++插件安裝:
wget https://binaries.sonarsource.com/CommercialDistribution/sonar-cfamily-plugin/sonar-cfamily-plugin-6.9.0.17076.jar docker cp sonar-cfamily-plugin-6.9.0.17076.jar sq:/opt/sonarqube/extensions/plugins/
官方文檔:
注:js插件需要安裝兩個,只安裝一個js插件會導致插件不兼容,容器起不來或者服務起不來。
wget https://binaries.sonarsource.com/Distribution/sonar-typescript-plugin/sonar-typescript-plugin-2.1.0.4359.jar docker cp sonar-typescript-plugin-2.1.0.4359.jar sq:/opt/sonarqube/extensions/plugins/ wget https://binaries.sonarsource.com/Distribution/sonar-javascript-plugin/sonar-javascript-plugin-6.2.1.12157.jar docker cp sonar-javascript-plugin-6.2.1.12157.jar sq:/opt/sonarqube/extensions/plugins/
結語:安裝插件的方式也就這兩種,如果網絡可以,直接安裝,網絡差可以選擇直接上傳到目錄。