I have SonarCloud working fine on Azure Pipelines by using the predefined tasks. I want to move away from this approach, because I want to start building the application in Docker.
Everything was working fine, on a dotnet 6 image running on alpine, until I setup SonarCloud. While running docker build
, the begin phase of sonar scanner went well:
SonarScanner for MSBuild 5.10
Using the .NET Core version of the Scanner for MSBuild
Pre-processing started.
Preparing working directories...
22:46:07.514 Updating build integration targets...
22:46:07.876 Fetching analysis configuration settings...
22:46:08.386 Provisioning analyzer assemblies for cs...
22:46:08.386 Installing required Roslyn analyzers...
22:46:09.244 Provisioning analyzer assemblies for vbnet...
22:46:09.244 Installing required Roslyn analyzers...
22:46:09.286 Pre-processing succeeded.
But then I am getting an error on dotnet build
:
/usr/share/dotnet/sdk/6.0.404/Microsoft.Common.CurrentVersion.targets(1220,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.6 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at .NET SDKs downloads for Visual Studio [/Portfolio.TimelineCV.Database/Portfolio.TimelineCV.Database.sqlproj]
This is a very strange error… Why would sonar scanner require .Net Framework, when executed on an alpine image? Any ideas on how I can fix this?
This is how I am installing sonar scanner, and setting it up
apk update && \
apk add --no-cache openjdk11 && \
dotnet tool install -g dotnet-sonarscanner && \
dotnet sonarscanner begin \
/k:"${SONAR_PROJECT_KEY}" \
/o:"${SONAR_ORGANISATION_KEY}" \
/d:sonar.host.url="${SONAR_HOST_URL}" \
/d:sonar.login="${SONAR_TOKEN}" \
/d:sonar.cs.opencover.reportsPaths=/coverage.opencover.xml
This is the output of dotnet --version, inside the container:
.NET SDK (reflecting any global.json):
#12 0.299 Version: 6.0.404
#12 0.299 Commit: be4f3ec411
#12 0.299
#12 0.299 Runtime Environment:
#12 0.300 OS Name: alpine
#12 0.300 OS Version: 3.17
#12 0.301 OS Platform: Linux
#12 0.308 RID: alpine.3.17-arm64
#12 0.308 Base Path: /usr/share/dotnet/sdk/6.0.404/
#12 0.309
#12 0.309 global.json file:
#12 0.310 Not found
#12 0.310
#12 0.310 Host:
#12 0.310 Version: 6.0.12
#12 0.310 Architecture: arm64
#12 0.310 Commit: 02e35a40c7
#12 0.310
#12 0.310 .NET SDKs installed:
#12 0.310 6.0.404 [/usr/share/dotnet/sdk]
#12 0.310
#12 0.310 .NET runtimes installed:
#12 0.310 Microsoft.AspNetCore.App 6.0.12 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
#12 0.310 Microsoft.NETCore.App 6.0.12 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
#12 0.310
#12 0.310 Download .NET:
#12 0.310 .NET Downloads (Linux, macOS, and Windows)
#12 0.310
#12 0.310 Learn about .NET Runtimes and SDKs:
#12 0.310 .NET (and .NET Core) - introduction and overview - .NET | Microsoft Learn
Any help would be appreciated!