Docker не удается выполнить сборку Azure Pipelines с ошибкой MSB1001

Столкнулся со странной проблемой. Когда я создаю свой 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 отлично работает, когда мы собираем его с помощью визуальная студия, он собирается и начинает работать без каких-либо ошибок.

Файл докера выглядит так:

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

Что вы имеете в виду «на машине с Windows» (использование Visual Studio не на Windows?)?

Shayki Abramczyk 29.05.2019 09:39

Я имею в виду на своем компьютере.

Prateek Naik 29.05.2019 09:50

И это не работает на Azure-Pipelines?

Shayki Abramczyk 29.05.2019 09:52

да такая же ошибка и на локалке. Но когда я запускаю его из визуальной студии, он создает и запускает приложение.

Prateek Naik 29.05.2019 09:54

в dotent restore попробуйте удалить / (только "WebApp,csproj")

Shayki Abramczyk 29.05.2019 09:55

Здорово! Я добавил это также как ответ :)

Shayki Abramczyk 29.05.2019 10:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
6
1 210
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

RUN dotnet restore "WebApp.csproj"

Другие вопросы по теме