具有.net核心应用程序的docker无法在Azure DevOps上构建

具有.net核心应用程序的docker无法在Azure DevOps上构建,azure,docker,asp.net-core,azure-devops,devops,Azure,Docker,Asp.net Core,Azure Devops,Devops,在Azure DevOps上构建docker有一个非常有趣的问题,甚至不知道如何解决它,也没有发现与此错误相关的任何信息,所以这里是带有错误的日志文件 Microsoft (R) Build Engine version 16.0.450+ga8dc7f1d34 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. 'git' is not recognized as an internal or e

在Azure DevOps上构建docker有一个非常有趣的问题,甚至不知道如何解决它,也没有发现与此错误相关的任何信息,所以这里是带有错误的日志文件

Microsoft (R) Build Engine version 16.0.450+ga8dc7f1d34 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  'git' is not recognized as an internal or external command,
  operable program or batch file.
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(905,3): warning MSB3073: The command "git --version" exited with code 9009. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
  'bash.exe' is not recognized as an internal or external command,
  operable program or batch file.
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(924,3): warning MSB3073: The command "C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\wslrun.cmd git --version" exited with code 1. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Program Files\dotnet\sdk\2.1.602\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ObsoleteReferences.targets(33,5): warning NETSDK1059: The tool 'Microsoft.EntityFrameworkCore.Tools.DotNet' is now included in the .NET Core SDK. Information on resolving this warning is available at (https://aka.ms/dotnetclitools-in-box). [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
  Restore completed in 377.95 ms for C:\src\Source\TestProject.App.Base.Api\TestProject.App.Base.Api.csproj.
  Restore completed in 377.95 ms for C:\src\Source\TestProject.App.Base.Dto\TestProject.App.Base.Dto.csproj.
  Restore completed in 25.96 ms for C:\src\Source\TestProject.App.Web.Api\TestProject.App.Web.Api.csproj.
  Restore completed in 25.14 ms for C:\src\Source\TestProject.App.Web.Dto\TestProject.App.Web.Dto.csproj.
  Restore completed in 74.95 ms for C:\src\Source\TestProject.App.Base\TestProject.App.Base.csproj.
  Restore completed in 63.88 ms for C:\src\Source\TestProject.App.Web\TestProject.App.Web.csproj.
  Restore completed in 28.04 ms for C:\src\Source\TestProject.Core\TestProject.Core.csproj.
  Restore completed in 4.64 ms for C:\src\Source\TestProject.Data.Model.Common\TestProject.Data.Model.Common.csproj.
  Restore completed in 24.93 ms for C:\src\Source\TestProject.Data.Model\TestProject.Data.Model.csproj.
  Restore completed in 25.5 ms for C:\src\Source\TestProject.Data.Repository\TestProject.Data.Repository.csproj.
  Restore completed in 81.12 ms for C:\src\Source\TestProject.Data.EntityFrameworkCore\TestProject.Data.EntityFrameworkCore.csproj.
  Restore completed in 379.54 ms for C:\src\Source\TestProject.Web\TestProject.Web.csproj.
  'git' is not recognized as an internal or external command,
  operable program or batch file.
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(905,3): warning MSB3073: The command "git --version" exited with code 9009. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
  'bash.exe' is not recognized as an internal or external command,
  operable program or batch file.
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(924,3): warning MSB3073: The command "C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\wslrun.cmd git --version" exited with code 1. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Program Files\dotnet\sdk\2.1.602\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ObsoleteReferences.targets(33,5): warning NETSDK1059: The tool 'Microsoft.EntityFrameworkCore.Tools.DotNet' is now included in the .NET Core SDK. Information on resolving this warning is available at (https://aka.ms/dotnetclitools-in-box). [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
  '--version' is not recognized as an internal or external command,
  operable program or batch file.
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(152,3): warning MSB3073: The command " --version" exited with code 9009. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(161,3): error : Failed to run `git --version`. Git may not be properly installed:  [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(161,3): error :  '--version' is not recognized as an internal or external command,;operable program or batch file. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]

Build FAILED.

C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(905,3): warning MSB3073: The command "git --version" exited with code 9009. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(924,3): warning MSB3073: The command "C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\wslrun.cmd git --version" exited with code 1. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Program Files\dotnet\sdk\2.1.602\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ObsoleteReferences.targets(33,5): warning NETSDK1059: The tool 'Microsoft.EntityFrameworkCore.Tools.DotNet' is now included in the .NET Core SDK. Information on resolving this warning is available at (https://aka.ms/dotnetclitools-in-box). [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(905,3): warning MSB3073: The command "git --version" exited with code 9009. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(924,3): warning MSB3073: The command "C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\wslrun.cmd git --version" exited with code 1. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Program Files\dotnet\sdk\2.1.602\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.ObsoleteReferences.targets(33,5): warning NETSDK1059: The tool 'Microsoft.EntityFrameworkCore.Tools.DotNet' is now included in the .NET Core SDK. Information on resolving this warning is available at (https://aka.ms/dotnetclitools-in-box). [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(152,3): warning MSB3073: The command " --version" exited with code 9009. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(161,3): error : Failed to run `git --version`. Git may not be properly installed:  [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
C:\Users\ContainerUser\.nuget\packages\gitinfo\2.0.20\build\GitInfo.targets(161,3): error :  '--version' is not recognized as an internal or external command,;operable program or batch file. [C:\src\Source\TestProject.Web\TestProject.Web.csproj]
    7 Warning(s)
    1 Error(s)

Time Elapsed 00:00:04.41
The command 'cmd /S /C dotnet build "TestProject.Web.csproj" -c Release -o /app' returned a non-zero code: 1
##[error]C:\Program Files\Docker\docker.exe failed with return code: 1
##[section]Finishing: Build an image
在我的windows计算机上,它构建良好,没有发生任何错误。我在Azure DevOps中尝试了不同的代理池,但有相同的问题。有人能告诉我这是怎么回事吗

如果需要,这里还有我的dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

ENV ASPNETCORE_ENVIRONMENT "Development"

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["Source/TestProject.Web/TestProject.Web.csproj", "Source/TestProject.Web/"]
COPY ["Source/TestProject.Data.EntityFrameworkCore/TestProject.Data.EntityFrameworkCore.csproj", "Source/TestProject.Data.EntityFrameworkCore/"]
COPY ["Source/TestProject.Core/TestProject.Core.csproj", "Source/TestProject.Core/"]
COPY ["Source/TestProject.App.Base.Dto/TestProject.App.Base.Dto.csproj", "Source/TestProject.App.Base.Dto/"]
COPY ["Source/TestProject.Data.Model/TestProject.Data.Model.csproj", "Source/TestProject.Data.Model/"]
COPY ["Source/TestProject.Data.Model.Common/TestProject.Data.Model.Common.csproj", "Source/TestProject.Data.Model.Common/"]
COPY ["Source/TestProject.Data.Repository/TestProject.Data.Repository.csproj", "Source/TestProject.Data.Repository/"]
COPY ["Source/TestProject.App.Web.Dto/TestProject.App.Web.Dto.csproj", "Source/TestProject.App.Web.Dto/"]
COPY ["Source/TestProject.App.Web/TestProject.App.Web.csproj", "Source/TestProject.App.Web/"]
COPY ["Source/TestProject.App.Base.Api/TestProject.App.Base.Api.csproj", "Source/TestProject.App.Base.Api/"]
COPY ["Source/TestProject.App.Web.Api/TestProject.App.Web.Api.csproj", "Source/TestProject.App.Web.Api/"]
COPY ["Source/TestProject.App.Base/TestProject.App.Base.csproj", "Source/TestProject.App.Base/"]
RUN dotnet restore "Source/TestProject.Web/TestProject.Web.csproj"
COPY . .
WORKDIR "/src/Source/TestProject.Web"
RUN dotnet build "TestProject.Web.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "TestProject.Web.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "TestProject.Web.dll"]

有人面对这个问题吗

我相信已经在GitHub上讨论过这个包依赖于本地Git客户端,您似乎没有将其作为Dockerfile的一部分安装。我相信已经在GitHub上讨论过这个包依赖于本地Git客户端,您似乎没有将其作为Dockerfile的一部分安装。