我正在尝试使用带有nosinovacao/dotnet-sonar imagedocker-compose
的 docker 使用 SonnarScanner for .NET 进行代码分析,但是,当我使用docker run
相同的参数时,我无法使用它来构建项目。
该解决方案由几个子解决方案组成,似乎 MS Build 在使用时构建整个解决方案存在一些问题docker-compose
,因为我遇到了MSBUILD : error MSB1008: Only one project can be specified.
错误。
使用时docker run
会显示一条消息Determining projects to restore...
,然后正确构建解决方案。
我不明白问题出在哪里,因为我使用完全相同的图像和参数。
这是我的工作docker run
命令:
docker run -it --rm \
--network=host \
-v /Developer/MyProject/:/source \
nosinovacao/dotnet-sonar:latest \
bash -c \
"cd source \
&& dotnet /sonar-scanner/SonarScanner.MSBuild.dll begin \
/k:MyProjectKey /name:MyProject /version:v1.2.3 \
/d:sonar.host.url="http://localhost:9000/" \
&& dotnet build MyProject.sln -c Release \
&& dotnet /sonar-scanner/SonarScanner.MSBuild.dll end"
和docker-compose
:
version: "3.8"
services:
dotnetscanner:
entrypoint: /bin/bash
command: -c "
cd source
&& dotnet /sonar-scanner/SonarScanner.MSBuild.dll begin
/k:MyProjectKey /name:MyProject /version:v1.2.3
/d:sonar.host.url="http://localhost:9000/"
&& dotnet build MyProject.sln -c Release \
&& dotnet /sonar-scanner/SonarScanner.MSBuild.dll end"
image: nosinovacao/dotnet-sonar:latest
volumes:
- "/Developer/MyProject/:/source"
network_mode: host
泊坞窗图像使用SonarScanner for MSBuild 5.0.4
和MSBuild version 16.8.3+39993bd9d for .NET
。
我该怎么做才能使 SonarScanner 使用docker-compose
?
提前致谢。
编辑:似乎传递参数有问题,当我明确定义不存在的项目时,docker-compose
我得到:
dotnetscanner_1 | MSBUILD : error MSB1008: Only one project can be specified.
dotnetscanner_1 | Switch:
当我对错误消息中docker run
的is not null 执行相同操作时:Switch:
MSBUILD : error MSB1009: Project file does not exist.
Switch: NonExistingProject.csproj