Докер с основным приложением .net не может работать на DevOps Azure - PullRequest
1 голос
/ 09 апреля 2019

У меня очень интересная проблема со сборкой докера в DevOps Azure, даже не знаю, как ее решить, не нашел соответствующей информации об этой ошибке, поэтому вот файл журнала с ошибкой

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"]

Кто-нибудь сталкивался с этой проблемой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...