Docker не может встроить в конвейеры Azure с «ошибкой MSB1001» - PullRequest
2 голосов
/ 29 мая 2019

Столкнулся со странной проблемой.Когда я собираю Dockerfile на машине с Windows (ноутбуком), получаю ошибку ниже, а также получаю ту же ошибку при попытке развернуть на Azure DevOps.

Step 7/17 : COPY ["WebApp.csproj", ""]
 ---> 3f3e198d00aa
Step 8/17 : RUN dotnet restore "/WebApp.csproj"
 ---> Running in 51f16f947ffb
MSBUILD : error MSB1001: Unknown switch.
Switch: /WebApp.csproj

For switch syntax, type "MSBuild -help"
The command '/bin/sh -c dotnet restore "/WebApp.csproj"' returned a non-zero code: 1
PS C:\Users\user\Desktop\Directory>

Но тот же Dockerfile работает нормально, когда мысоберите его, используя visual studio он собирается и запускается без ошибок.

Файл Docker выглядит так:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["WebApp.csproj", ""]
RUN dotnet restore "/WebApp.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "WebApp.csproj" -c Release -o /app

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

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

1 Ответ

3 голосов
/ 29 мая 2019

Поскольку в вашем dotnet restore есть /, поэтому MSBuild считает, что это переключатель (например, /p:) и не работает, вам просто нужно удалить его:

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