docker 搭建SonarQube 并检测项目
docker 搭建SonarQube
拉取Sonar镜像
docker pull sonarqube:8.3.1-community
运行实例
docker run --name sonarqube -p 9000:9000 -d sonarqube:8.3.1-community
接着访问:http://localhost:9000/ 就可以了,默认管理员用户和密码为:admin/admin
一般可以启动一个数据库如Oracle、MySQL或PostgreSQL。相关系统信息可以在Administration-System查看,我们不指定的话,默认是使用内嵌的H2数据库。如果要指定其它数据库,启动Docker时需要指定。
使用H2数据库有会一些问题:
- 内嵌数据库只能用于测试场景
- 内嵌数据库无法扩展
- 无法升级到新版本的SonarQube,并且不能支持将你的数据迁移至其他数据库引擎
所以建议实际使用时,不要使用内嵌的H2数据库,连接postgres 或 mysql
docker pull mysql:5.7.31
docker run --name mysql-sonar -e MYSQL_ROOT_PASSWORD=mysql -e MYSQL_DATABASE=sonar -e MYSQL_USER=sonar -e MYSQL_PASSWORD=sonar -v /path/to/local/mysql/dir:/var/lib/mysql -p 33066:3306 -d mysql:5.7.31
docker run -d -p 3306:3306 --name mysql-sonarqube -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=sonar -e MYSQL_USER=admin -e MYSQL_PASSWORD=sonar -v /opt/sonarqube/mysql:/private/var/mysql mysql:5.7.31
docker run -d --name sonarqube \
-p 9000:9000 \
-e SONAR_JDBC_URL=jdbc:postgresql://localhost/sonarqube \
-e SONAR_JDBC_USERNAME=sonar \
-e SONAR_JDBC_PASSWORD=sonar \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
sonarqube:latest
docker run –rm
-p 9000:9000
-v sonarqube_conf:/opt/sonarqube/conf
-v sonarqube_extensions:/opt/sonarqube/extensions
-v sonarqube_logs:/opt/sonarqube/logs
-v sonarqube_data:/opt/sonarqube/data
–name sonarqube sonarqube:7.9
$ docker run -d –name sonarqube
-p 9000:9000
-e sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
-e sonar.jdbc.username=sonar
-e sonar.jdbc.password=sonar
-v sonarqube_conf:/opt/sonarqube/conf
-v sonarqube_extensions:/opt/sonarqube/extensions
-v sonarqube_logs:/opt/sonarqube/logs
-v sonarqube_data:/opt/sonarqube/data
sonarqube:7.9-community
官网特别详细 https://docs.sonarqube.org/latest/setup/install-server/
安装插件
根据测试项目的语言来下载相应的插件
检测项目
如果项目是在Android Studio 或者IntelJ 的 开发工具中,一般都是有相应的SonarQube 插件,下载相应插件,运行docker SonarQube,并且把插件和项目连接起来就直接可以来检测了。