您使用的映像仅包含.NET Core运行时,而不包含SDK。尝试来自以下存储库的基本映像:
https://hub.docker.com/r/microsoft/aspnetcore-
build/
您的Dockerfile中包含以下几行:
RUN ["dotnet", "restore"]RUN ["dotnet", "build"]
这意味着
dotnet restoreand
dotnetbuild命令正在您使用的映像中运行。由于您使用的映像未安装SDK,因此您找不到这些命令,这些命令将失败。我在上面链接的存储库中的映像已在其中安装了SDK,因此可以找到和执行
dotnetrestore和
dotnet build命令。
使用安装了SDK的基本映像的替代方法是在开发计算机上执行构建/发布过程,然后将发布的输出复制到映像中。然后,您的Dockerfile只需要看起来类似以下内容:
FROM microsoft/aspnetcore:1.0.1WORKDIR /appCOPY ./app .ENTRYPOINT ["dotnet", "TheNameOfYourProject.dll"]
请注意,现在
dotnet在映像中运行的命令只是运行您(预构建的)DLL的命令。这仅需要运行时,而不需要SDK。



