Dotnet: в Dockerfile нет такого файла или каталога

#.net #docker #dockerfile

#.net #docker #dockerfile

Вопрос:

Я не понимаю, в чем именно проблема. Я пытаюсь настроить свое веб-приложение orchard. Но у меня всегда возникает проблема отсутствия такого файла или каталога, но когда я пытаюсь войти в этот каталог, я могу четко видеть мой .csproj Вот мой dockerfile:

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

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
RUN mkdir p FGIC.WebCMS
COPY FGIC.WebCMS/FGIC.WebCMS.csproj FGIC.WebCMS/.
RUN dotnet restore FGIC.WebCMS/FGIC.WebCMS.csproj
COPY . .
RUN ls -al /src
RUN ls -al /src/FGIC.WebCMS
WORKDIR /src/FGIC.WebCMS
RUN dotnet build FGIC.WebCMS.csproj -c Release -o /app/build

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

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

Это ошибка, которая появляется на уровне построения образа docker

   WebCompiler: Begin compiling compilerconfig.json
  WebCompiler installing updated versions of the compilers...
 /root/.nuget/packages/buildwebcompiler/1.12.394/build/BuildWebCompiler.targets(12,9): error : No such file or directory [/src/FGIC.WebCMS/FGIC.WebCMS.csproj]

Build FAILED.

/root/.nuget/packages/buildwebcompiler/1.12.394/build     /BuildWebCompiler.targets(12,9): error : No such file or directory [/src/FGIC.WebCMS/FGIC.WebCMS.csproj]
0 Warning(s)
1 Error(s)

Time Elapsed 00:00:06.37
The command '/bin/sh -c dotnet build FGIC.WebCMS.csproj -c Release -o /app/build' returned a non-zero code: 1
 

И это структура моей папки приложения:

 |-- Dockerfile
|--FGIC.sln
|--FGIC.WebCMS/ --|FGIC.WebCMS/FGIC.WebCMS.csproj
                --| other files of the project
 

Комментарии:

1. можете ли вы проверить разрешение на доступ к файлу?

2. это права доступа к моему файлу csproj: -rw-rw-r—

3. @SKos я дал все разрешения, но он показывает мне ту же ошибку

Ответ №1:

Это была проблема в файле csproj. Он содержит эту строку:

     <PackageReference Include="BuildWebCompiler" Version="1.12.394" />
 

Итак, после удаления этой строки все работает правильно.

Ответ №2:

Не могли бы вы попробовать это во второй части, пожалуйста? Похоже, проблема с каталогом.

 FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY . .
RUN dotnet restore FGIC.WebCMS/FGIC.WebCMS.csproj
RUN ls -al /FGIC.WebCMS
RUN dotnet build FGIC.WebCMS/FGIC.WebCMS.csproj -c Release -o /app/build
 

Комментарии:

1. Я попробовал это, но это не удается с той же ошибкой