gpt4 book ai didi

docker - 如何在 docker 图像中包含声纳扫描仪

转载 作者:行者123 更新时间:2023-12-02 19:25:48 28 4
gpt4 key购买 nike

我有一个用作 Jenkins 管道代理的 dotnet 镜像。现在我想在图像中包含声纳扫描仪,以便我可以运行分析并查看覆盖范围是否良好。如果覆盖范围不好,那么构建应该会失败。如何在我的图像中包含声纳扫描仪。

我尝试在 dotnet 图像的 Dockerfile 中包含 Skilldlabs/sonar-scanner。但是当我运行容器时,它直接执行了声纳立方体命令,但由于使用了默认的 sonarqube 地址而失败。

下面是我当前的 Dockerfile

FROM microsoft/dotnet:2.1-sdk
FROM skilldlabs/sonar-scanner:3.3

COPY some-ca.crt /usr/local/share/ca-certificates
COPY NuGet.Config /build/.nuget/NuGet/

VOLUME [ "/build/sources" ]

WORKDIR /build/sources

当我跑的时候:
docker run --name sonar -it sonar

信息:扫描仪配置文件:/root/sonar-scanner-3.3.0.1492-linux/conf/sonar-scanner.properties

信息:项目根配置文件:无

信息:SonarQube 扫描仪 3.3.0.1492

信息:Java 1.8.0_191 甲骨文公司(64 位)

信息:Linux 4.9.125-linuxkit amd64

信息:用户缓存:/root/.sonar/cache

错误:SonarQube 服务器 [ http://sonarqube:9000]无法连接

信息:------------------------------------------------ ----------------------

信息:执行失败

信息:------------------------------------------------ ----------------------

信息:总时间:5.433s

信息:最终内存:3M/39M

信息:------------------------------------------------ ----------------------

错误:SonarQube 扫描仪执行期间出错

错误:无法执行 SonarQube

错误:原因:无法从服务器获取引导索引

错误:原因:sonarqube:再试一次

错误:

错误:使用 -X 开关重新运行 SonarQube 扫描仪以启用完整调试
记录。

如何告诉容器为声纳扫描仪提供配置?

最佳答案

我没有使用声纳扫描仪图像到我的图像中,而是使用以下命令安装了 dotnet-sonarscanner,

dotnet tool install -g dotnet-sonarscanner

我必须通过将以下内容添加到单元测试项目的 .csproj 文件中来将“coverlet”包安装到我的单元测试项目中。
<PackageReference Include="coverlet.msbuild" Version="2.6.1">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>

现在,每当我想发送 sonarqube 我的覆盖结果时,我都会运行下面的命令来生成覆盖文件。
dotnet test ./UnitTests/UnitTests.csproj /p:CollectCoverage=true /p:CoverletOutputFormat=opencover

上述命令将在项目文件夹中生成coverage.opencover.xml 文件。

现在使用以下命令发送覆盖范围
dotnet sonarscanner begin /k:"yourprojectkey" /d:sonar.host.url=https://yoursonarqubedomain.com /d:sonar.cs.opencover.reportsPaths="./UnitTests/coverage.opencover.xml" /d:sonar.coverage.exclusions="**Tests*.cs"
dotnet build
dotnet sonarscanner end

您可以使用 /d: 设置声纳扫描仪属性,如报告位置和 URL 等。

关于docker - 如何在 docker 图像中包含声纳扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56349453/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com