如何在 Dockerfile 中嵌入 SonarQube 质量门条件检查以对点网项目进行声纳分析

问题描述 投票:0回答:0

我们有一个 dot net 应用程序,我们使用 Jenkinsfile 进行构建。 Jenkinsfile 对具有 dockerfile 的整个应用程序执行 docker build,并使用以下声纳分析说明:-

RUN if("$Env:SKIP_SQ" -eq 'NO') { "C:\build\sonar-scanner-msbuild-4.6.2.2108-net46\SonarQube.Scanner.MSBuild.exe" begin /k:"***" /d:sonar.exclusions=**/Foundation/Themes/code/Scripts/**,**/Project/***/code/SiteJS/Plugins/**,**/Project/***/code/SiteJS/Rates/** }

RUN msbuild .\***.sln  /p:DeployOnBuild=True /p:Configuration=Release /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:PublishUrl=C:\out\website /m

RUN if("$Env:SKIP_SQ" -eq 'NO') { "C:\build\sonar-scanner-msbuild-4.6.2.2108-net46\SonarQube.Scanner.MSBuild.exe" end }

dockerfile 中的第一个 RUN 指令开始声纳分析,如下所示:- https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner-for-dotnet/

我们可以在第一个 RUN 指令中传递如下属性:-

sonar.qualitygate.wait=true

所以就像:-

RUN if("$Env:SKIP_SQ" -eq 'NO') { "C:\build\sonar-scanner-msbuild-4.6.2.2108-net46\SonarQube.Scanner.MSBuild.exe" begin /k:"***" /d:sonar.qualitygate.wait=true /d:sonar.exclusions=**/Foundation/Themes/code/Scripts/**,**/Project/***/code/SiteJS/Plugins/**,**/Project/***/code/SiteJS/Rates/** }

这行得通吗,我们如何在这里调用质量门条件,以便在不满足检查时构建失败。

docker sonarqube sonarqube-scan sonarscanner sonarqube-msbuild-runner
© www.soinside.com 2019 - 2024. All rights reserved.