一、需求
在我們開發的過程中,難免有時候代碼寫的不規範,或存在一些靜态的bug問題,這個時候一個良好的代碼檢查工具就很有必要,而
sonarqube
正好可以滿足整個要求。
二、 docker-compose 檔案的編寫
version: "3"
services:
sonarqube:
image: sonarqube:8.3.1-community
container_name: sonarqube
restart: 'no'
networks:
- sonarnet
environment:
- sonar.jdbc.username=sonar
- sonar.jdbc.password=sonar
- sonar.jdbc.url=jdbc:postgresql://sonarqube-postgre:5432/sonarqube
- sonar.search.javaOpts=-Xms256m -Xmx256m
ports:
- "9010:9000"
- "9011:9092"
depends_on:
- sonarqube-postgre
links:
- sonarqube-postgre
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins
sonarqube-postgre:
image: postgres:12.3
container_name: sonarqube-postgre
restart: 'no'
networks:
- sonarnet
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
- POSTGRES_DB=sonarqube
volumes:
- sonarqube_postgre_db:/var/lib/postgresql
- sonarqube_postgre_data:/var/lib/postgresql/data
volumes:
sonarqube_bundled-plugins:
sonarqube_data:
sonarqube_extensions:
sonarqube_postgre_db:
sonarqube_postgre_data:
networks:
sonarnet:
driver: bridge
三、運作
docker-compose -f 檔案路徑 up
四、注意事項
-
的鏡像資料挂載,最好使用資料卷sonarqube
。volume
- 在多個
執行個體 中不可使用相同的資料卷。sonarqube
- 每個
執行個體 最好sonarqube
自己的有
的單獨
。資料庫schema
-
在es
環境下運作需要注意的必要環境,可以看 下方的參考連結,[sonarqube鏡像]linux
- 當主控端的記憶體比較小的時候,在鏡像檔案中需要增加
參數,否則可能會出現 SonarQube Process exited with exit value [es]: 137 問題。sonar.search.javaOpts=-Xms256m -Xmx256m
五、參考連結
sonarqube鏡像 https://hub.docker.com/_/sonarqube
sonarqube官網 https://docs.sonarqube.org/latest/setup/install-server/