建设一个网站的过程,网站的站点建设分为,北京推广优化,怎么做网页挣钱前言SonarQube是一款静态代码质量分析工具#xff0c;它常用于检测代码中的Bug、漏洞和代码异味#xff0c;并且能够集成在IDE、Jenkins、Git等服务中#xff0c;方便随时查看代码质量分析报告。一般情况下#xff0c;我们在Jenkins管道中配置SonarQube#xff0c;在编译过… 前言SonarQube是一款静态代码质量分析工具它常用于检测代码中的Bug、漏洞和代码异味并且能够集成在IDE、Jenkins、Git等服务中方便随时查看代码质量分析报告。一般情况下我们在Jenkins管道中配置SonarQube在编译过程时执行扫描。在本文中我们将介绍不使用Jenkins通过编写Dockerfile以便在构建docker镜像时同时执行SonarQube代码扫描。Dockerfile我们把Dockerfile分成多个步骤下面来一步步讲解1.定义编译环境FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env
WORKDIR /app将编译环境和最后的运行环境分开。2.定义SonarQube参数ENV SONAR_URL http://xxx:9000
ENV SONAR_TOKEN xxx
ENV SONAR_PROJECT xxx参数包含SonarQube服务器地址和Token这个和Jenkins配置一致。项目名称SONAR_PROJECT对应SonarQube服务器上的配置。3.安装JavaRUN apt-get update apt-get install -y openjdk-11-jre这是运行SonarQube必须的。4.安装dotnet命令行工具RUN dotnet tool install --global dotnet-sonarscanner --version 5.3.1ENV PATH${PATH}:/root/.dotnet/tools这是SonarQube扫描.NET Core程序必须的。5.启动扫描RUN dotnet sonarscanner begin \/k:$SONAR_PROJECT \/d:sonar.host.url$SONAR_URL \/d:sonar.login$SONAR_TOKENdotnet-sonarscanner详细参数可参见https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-msbuild/6.编译应用COPY *.csproj .
RUN dotnet restoreCOPY . .RUN dotnet publish --output /publish/复制文件恢复Nuget包编译应用程序。7.结束扫描RUN dotnet sonarscanner end /d:sonar.login$SONAR_TOKEN结束扫码并上传SonarQube扫描结果。8.运行应用FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --frombuild-env /publish .
ENTRYPOINT [dotnet, xxx.dll]从SDK镜像复制编译输出然后执行运行命令。结论最后只需执行docker build命令即可生成镜像,并在构建过程中运行SonarQube扫描:docker build .想了解更多内容请关注我的个人公众号”My IO“