Sonar 是一款开源的代码分析工具,可能有很多人已经用过,本篇文章主要是讲解如何在 Docker 里面安装 Sonar 并且用其来分析 .Net Core 项目。
Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。
与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
GitHub 上面有一个 docker-compose.yml 文件,你直接通过 Docker-Compose 就可以运行好环境的。
version: "2"services: sonarqube: image: sonarqube ports: - "9000:9000" networks: - sonarnet environment: - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar volumes: - sonarqube_conf:/opt/sonarqube/conf - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins db: image: postgres networks: - sonarnet environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar volumes: - postgresql:/var/lib/postgresql # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52 - postgresql_data:/var/lib/postgresql/datanetworks: sonarnet: driver: bridgevolumes: sonarqube_conf: sonarqube_data: sonarqube_extensions: sonarqube_bundled-plugins: postgresql: postgresql_data:
将其保存到你的 Linux 服务器上,运行以下命令:
docker-compose up
如果需要重启的话则运行以下命令即可:
docker-compose restart sonarqube
回到顶部Sonar 官方的文档 ,运行命令行工具,并且键入以下命令:
dotnet tool install --global dotnet-sonarscanner --version 4.3.1
就成功安装好 Sonar Scanner 了。
回到顶部https://github.com/SonarQubeCommunity/sonar-l10n-zh。你可以根据你的 Sonar 版本来选择下载安装哪一个版本的插件,博主目前是基于 Sonar 的 7.1 镜像的,所以下载的是 1.21 版本。
下载完成之后,使用在之前运行容器的时候,加上 -v 参数,将容器目录 /opt/sonarqube/extensions/plugins 映射到你宿主机来,将你的这个文件拷贝到映射好的目录之下,然后重启 Sonar 容器即可。
如果你是使用的 Docker-Compose 文件来运行的容器,只需要找到相应的卷,比如说博主插件的数据卷目录在
/var/lib/docker/volumes/docker-ymls_sonarqube_extensions/_data 里面,我直接拷贝过去重启容器即可,大家的目录路径可能不一样,使用 docker volume ls 命令可以看到存在的数据卷,比如说我的:
DRIVER VOLUME NAMElocal 09d0144ebeb8fd9dc382bb14f33d35e156c6e7f29dcfa42ac52f2b82422fab98local 2c6c4d351a919c9550de94797ce77805fbe178c9226e71bf99c07c44fd303af1local c8b5b6cd301d4cea2e64866e12a9cf6a2bb4e257e5875449f62dede59ebc52c7local docker-ymls_postgresqllocal docker-ymls_postgresql_datalocal docker-ymls_sonarqube_bundled-pluginslocal docker-ymls_sonarqube_conflocal docker-ymls_sonarqube_datalocal docker-ymls_sonarqube_extensionslocal fd1127a3cec43dc992cbf0eefd053bd9dd8f3e93dc9fb0348c70048846f82308local portainer_data
可以看到插件目录是放在 docker-ymls_sonarqube_extensions 这个数据卷里面的。
汉化完成的界面如下:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3518/viewspace-2803282/ ,如需转载,请注明出处,否则将追究法律责任。