Docker сбой сборки образа - Нет такого файла или каталога - PullRequest
0 голосов
/ 19 июня 2020

Я создал приложение. Net Core в Visual Sutdio 2019 и добавил поддержку docker, поэтому он автоматически генерирует файл, но когда я создаю изображение docker, на выходе отображается:

1>/root/.nuget/packages/microsoft.typescript.msbuild/3.9.5/tools/Microsoft.TypeScript.targets(551,5): 
error MSB6003: The specified task executable "node" could not be run. System.ComponentModel.Win32Exception 
(2): No such file or directory [/src/CyberEvalNextGen.csproj]

Я предполагаю, что есть проблема с COPY, но я не уверен.

Вот мой docker файл:

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

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

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

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

1 Ответ

0 голосов
/ 25 июня 2020

У меня была такая же проблема. Ошибка немного вводит в заблуждение, потому что ваш .csproj указан в конце, но это ключевая часть:

The specified task executable "node" could not be run.

На самом деле он пытается запустить команду «узел» и не может найти исполняемый файл. . Чтобы решить эту проблему, я добавил Node.js непосредственно перед этапом сборки.

...
WORKDIR "/src/."
#Installing Node.js in build container
RUN apt-get update && apt-get -y install nodejs                   
RUN dotnet build "CyberEvalNextGen.csproj" -c Release -o /app/build
...

Это использует Linux контейнеры, но я считаю, что вы можете сделать что-то подобное с PowerShell в Windows контейнерах.

...