澳门皇冠金沙网站▎在线官网
做最好的网站

使用 SonarQube 来分析 NetCore 项目代码问题澳门皇冠

2019-10-03 作者:网络服务   |   浏览(101)

0.介绍

Sonar 是一款开源的代码分析工具,可能有很多人已经用过,本篇文章主要是讲解如何在 Docker 里面安装 Sonar 并且用其来分析 .Net Core 项目。

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。

与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

        SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,还可以检查整体代码中的重复率,为开发人员提供优化依据。

1.安装

安装的话,秉承一贯的懒人原则,在本篇文章当中是直接使用的 Sonar 的 Docker 镜像来进行安装配置的。

        部署环境:

1.1 安装 Docker

安装 Docker-CE 的教程在我的这篇文章里面有讲到过,这里就不再多加赘述。

                Centos7或以上版本,需2G的物理内存;

1.2 建立私有网络

执行以下命令:

docker network create sonar

将会创建一个 Docker 内部网络,名字为 sonar。

                安装好Docker服务并且启动;

1.2 启动 PostgreSql 容器

使用以下命令拉取 PostgreSql 的镜像:

docker pull postgres

然后我们启动一个 PostgreSql 容器,名字叫做 sonar-db。

docker run -d --name sonar-db --network sonar -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar postgres

这里启动容器的时候指定了容器的网络是 sonar-db ,那么后面在 sonar 容器启动的时候加入这个网络即可,其余两个环境变量是用作 PostgreSql 数据库默认的账号密码。

                安装完后需要通过9000端口访问,开启了防火墙的请配置好对应规则。

1.3 启动 Sonar 容器

使用以下命令拉取 Sonar 镜像:

docker pull sonarqube

启动 Sonar 容器:

docker run -d --name sonar --network sonar -p 9000:9000 -p 9092:9092 -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://sonar-db:5432/sonar sonarqube

至此,我们的 Sonar 已经部署完成了,访问你服务器或者本地 IP 的 9000 端口即可看到我们最终的效果。

澳门皇冠金沙网站,在线官网 1

注意:在这里我们没有针对这两个容器进行数据卷挂载,挂载可以参考下列 YML 文件进行自己的配置,推荐在实际生产环境部署的时候使用 Docker-Compose 来进行部署。

1、获取镜像

docker pull postgres

docker pull sonarqube

1.3:扩展:使用 Docker-Compose 来运行 Sonar

如果你每次都需要手动输入这么多命令,其实很麻烦的,在 Sonar 官方的 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/data

networks:
  sonarnet:
    driver: bridge

volumes:
  sonarqube_conf:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_bundled-plugins:
  postgresql:
  postgresql_data:

将其保存到你的 Linux 服务器上,运行以下命令:

docker-compose up

如果需要重启的话则运行以下命令即可:

docker-compose restart sonarqube

2、启动镜像

docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres

docker run --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -p 9000:9000 -d sonarqube

验证部署是否成功:

        curl localhost:9000

澳门皇冠金沙网站,在线官网 2

如返回信息大致如上图则说明部署成功。

本文由澳门皇冠金沙网站发布于网络服务,转载请注明出处:使用 SonarQube 来分析 NetCore 项目代码问题澳门皇冠

关键词: