安装dotnet核心工具Dockerfile [英] Install dotnet core tool Dockerfile

查看:116
本文介绍了安装dotnet核心工具Dockerfile的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个.net核心应用程序,我想在一个容器内创建SonarBuild。

I have an .net core application where I would like to make a SonarBuild inside a container.

所以我有一个像这样的Dockerfile:

So I have a Dockerfile like this:

FROM microsoft/aspnetcore-build as build-env

WORKDIR /src

COPY question-metrics-api/question-metrics-api.csproj question-metrics-api/
COPY question-metrics-data/question-metrics-data.csproj question-metrics-data/
COPY question-metrics-domain/question-metrics-domain.csproj question-metrics-domain/
COPY tests/question-metrics-domain-tests/question-metrics-domain-tests.csproj tests/question-metrics-domain-tests/

RUN dotnet restore tests/question-metrics-domain-tests
RUN dotnet restore question-metrics-api/question-metrics-api.csproj

COPY . .

#Run tests
RUN dotnet test tests/question-metrics-domain-tests/question-metrics-domain-tests.csproj

#Begin Sonar
RUN dotnet tool install --global dotnet-sonarscanner
RUN dotnet sonarscanner begin /k:"question-metrics-api" /d:sonar.host.url="http://sonarqube:9000" /d:sonar.login="7ed84e09a17a31e783fa8522d876e27fe4624977"
RUN dotnet build
RUN dotnet sonarscanner end /d:sonar.login="7ed84e09a17a31e783fa8522d876e27fe4624977"
#End Sonar

RUN dotnet publish question-metrics-api/question-metrics-api.csproj -c Release -o publish

FROM microsoft/aspnetcore as runtime-env

COPY --from=build-env src/question-metrics-api/publish .
EXPOSE 80
ENTRYPOINT [ "dotnet", "question-metrics-api.dll" ]

当我尝试构建此dockerfile时,出现错误:

When I try to build this dockerfile I got an error:

Step 11/19 : RUN dotnet tool install --global dotnet-sonarscanner
 ---> Running in 78719975f3b0
No executable found matching command "dotnet-tool"

如何安装从aspnetcore生成映像的dotnet工具?

How can I install dotnet tool from aspnetcore-build image?

好吧,如果我使用基本映像microsoft / dotnet :2.1-sdk我不再得到找不到与命令 dotnet-tool匹配的可执行文件错误,现在我得到了没有与命令匹配的可执行文件 dotnet-sonarscanner

Ok, If I use the base image microsoft/dotnet:2.1-sdk I don't get anymore No executable found matching command "dotnet-tool" error, now I get No executable found matching command "dotnet-sonarscanner"

在这种情况下如何使用声纳扫描仪工具?

How can I use sonarscanner tool in this scenario?

推荐答案

正如我在此线程中所阅读的: https: //github.com/dotnet/dotnet-docker/issues/520 ,我们可以在设置以下行的容器内运行dotnet工具全局命令:

As I have read in this thread: https://github.com/dotnet/dotnet-docker/issues/520, we can run a dotnet tool global command inside a container setting the following line:

ENV PATH = $ {PATH}:/ root / .dotnet / tools

所以我最后的Dockerfile就像:

So my final Dockerfile is like:

FROM microsoft/dotnet:2.1-sdk as build-env

WORKDIR /src

COPY question-metrics-api/question-metrics-api.csproj question-metrics-api/
COPY question-metrics-data/question-metrics-data.csproj question-metrics-data/
COPY question-metrics-domain/question-metrics-domain.csproj question-metrics-domain/
COPY tests/question-metrics-domain-tests/question-metrics-domain-tests.csproj tests/question-metrics-domain-tests/

RUN dotnet restore tests/question-metrics-domain-tests
RUN dotnet restore question-metrics-api/question-metrics-api.csproj

COPY . .

#Run tests
RUN dotnet test tests/question-metrics-domain-tests/question-metrics-domain-tests.csproj

#Begin Sonar
RUN dotnet tool install -g dotnet-sonarscanner

ENV PATH="${PATH}:/root/.dotnet/tools"

RUN dotnet sonarscanner begin /k:"question-metrics-api" /d:sonar.host.url="http://sonarqube:9000" /d:sonar.login="7ed84e09a17a31e783fa8522d876e27fe4624977"
RUN dotnet build
RUN dotnet sonarscanner end /d:sonar.login="7ed84e09a17a31e783fa8522d876e27fe4624977"

希望能帮助到某人!

这篇关于安装dotnet核心工具Dockerfile的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆