【问题标题】:How to perform code analysis in sonarqube in docker in a ASP.NET web application如何在 ASP.NET Web 应用程序的 docker 中的 sonarqube 中执行代码分析
【发布时间】:2017-05-26 11:47:04
【问题描述】:

我的SonarQube官方docker镜像在http://localhost:32768/下成功运行(是Docker提供的那个)

我们想用 C#.NET 执行一些代码分析,这个应用程序位于一个名为 c:\myapplication 的文件夹中(这是我有 prj 和 sln 的地方)

我的问题是如何!如何告诉我的 SonarCube,在我的 docker http://localhost:32768/ 中运行,我想分析我的 C# 代码?

非常感谢!

【问题讨论】:

    标签: c# asp.net docker sonarqube


    【解决方案1】:

    由于提供的第二个答案似乎是特定于 Windows 的,我决定写下如何在 Linux 中完成它,包括安装 sonarqube。

    1.) 运行命令:

    $sudo docker pull sonarqube
    

    这将拉取 docker 镜像。

    2.) 使用命令运行服务器:

    $sudo docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
    

    这将运行 sonarqube 服务器。然后您可以转到 Firefox 并访问http://localhost:9000 的服务器并使用密码“admin”和用户“admin”登录。

    ------------------ 分析项目 --------------- -------------------------------------------------- --

    1.) 从此处下载声纳扫描仪:

    https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild

    2.) 解压缩并将文件放在一个文件夹中。

    3.) 为 sonarcube 文件授予可执行权限,如下所示:

    $chmod +x <path-to-extracted-folder>/sonar-scanner-3.2.0.1227/bin/sonar-scanner
    

    4.) 在 firefox (localhost:9000) 中使用用户界面创建一个项目。

    5.) 转到 sln 文件所在的目录并运行项目命令。它们将具有以下形式之一:

    $SonarScanner.MSBuild.exe begin /k:"project-key"
    $MSBuild.exe /t:Rebuild
    $SonarScanner.MSBuild.exe end
    

    $dotnet <path to SonarScanner.MSBuild.dll> begin /k:"project-key"
    $dotnet build
    $dotnet <path to SonarScanner.MSBuild.dll> end
    

    两者都应该工作。之后你可以在 Firefox 中看到你的结果。

    【讨论】:

      【解决方案2】:

      为了迂腐,SonarQube 不分析代码。它向您展示了分析结果(好吧,它实际上确实在服务器端做了一些进一步的度量聚合和计算)。相反,您想告诉 SonarQube Scanner for MSBuild 分析您的代码。 Doing so is fully documented.

      基本上

      1. 安装扫描仪
      2. 执行 Begin 步骤(这告诉扫描器开始监听)
      3. (重新)构建您的解决方案
      4. 执行结束步骤(告诉扫描仪停止监听并处理它听到的内容)
      5. 在 SonarQube 界面中浏览您的项目。

      具体的命令如下所示:

      SonarQube.Scanner.MSBuild.exe begin /k:"org.sonarqube:sonarqube-scanner-msbuild" /n:"Project Name" /v:"1.0"
      MSBuild.exe /t:Rebuild
      SonarQube.Scanner.MSBuild.exe end
      

      【讨论】:

      • 要学究起来,这实际上是一个非常有用的区别。
      【解决方案3】:

      感谢您的回答,但几个小时后,我决定在我的博客中写一篇文章,介绍如何逐步完成。

      我知道有很多文档,但是在您看到分析正确完成之前,还有很多零碎的东西。

      我决定和你们分享我的观点和结果,

      http://netsourcecode.blogspot.co.uk/2017/01/continuous-code-quality-with-net.html

      玩得开心!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        相关资源
        最近更新 更多