【问题标题】:Docker build image fails - No such file or directoryDocker 构建映像失败 - 没有这样的文件或目录
【发布时间】:2020-06-19 00:26:54
【问题描述】:

我在 Visual Sutdio 2019 中创建了一个 .Net Core 应用程序并添加了 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"]

【问题讨论】:

    标签: .net linux docker dockerfile containers


    【解决方案1】:

    我有同样的问题。该错误有点误导,因为它最后列出了您的 .csproj,但这是关键部分:

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

    它实际上是在寻找运行命令“node”但它找不到可执行文件。为了解决这个问题,我在构建步骤之前添加了 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 容器,但我相信您可以在 Windows 容器中使用 PowerShell 做类似的事情。

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      相关资源
      最近更新 更多