Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio 2017 Docker支持不适用于ASP.Net Core Angular或React项目_C#_Docker_Asp.net Core_Visual Studio 2017 - Fatal编程技术网

C# Visual Studio 2017 Docker支持不适用于ASP.Net Core Angular或React项目

C# Visual Studio 2017 Docker支持不适用于ASP.Net Core Angular或React项目,c#,docker,asp.net-core,visual-studio-2017,C#,Docker,Asp.net Core,Visual Studio 2017,有人知道为什么Visual Studio 2017有一个复选框,允许Docker支持ASP.NET Core的空、Web API、Web应用程序和Web应用程序(MVC)模板,但不支持SPA模板Angular、React.js或React.js和Redux吗 是否有任何资源显示如何向这些SPA模板添加Docker支持?我的google fu很强大,但我找不到任何功能。我不确定在项目设置期间选择模板时为什么禁用该复选框。但是,您仍然可以通过执行以下操作添加Docker支持: 设置项目 在解决方案资

有人知道为什么Visual Studio 2017有一个复选框,允许Docker支持ASP.NET Core的空、Web API、Web应用程序和Web应用程序(MVC)模板,但不支持SPA模板Angular、React.js或React.js和Redux吗


是否有任何资源显示如何向这些SPA模板添加Docker支持?我的google fu很强大,但我找不到任何功能。

我不确定在项目设置期间选择模板时为什么禁用该复选框。但是,您仍然可以通过执行以下操作添加Docker支持:

  • 设置项目
  • 在解决方案资源管理器中的project上单击鼠标右键
  • 将鼠标悬停在add上
  • 单击Docker支持
  • 这将创建一些docker compose文件和一个docker文件,基本上只使用dotnet CLI在解决方案上运行publish命令。前端代码没有什么特别之处。默认情况下,在使用这些模板时,webpack生成信息会放入.csproj文件中。您可以了解有关添加Docker支持功能的更多信息

    下面是如何在Visual Studio for Mac 2017上添加docker支持,但在Windows上的效果相同


    您看到该错误的原因是,对于SPA项目,csproj包含用于运行package.json中定义的步骤以进行打包(ng build、webpack等)的命令。这要求节点位于需要显式添加的构建容器中。您必须确保您在容器中使用的节点版本将与您选择的构建映像一起使用。大多数时候,这不应该是一个问题,但万一是这样,至少你现在知道了

    您需要在dotnet构建之后和dotnet发布步骤之前将以下内容添加到Dockerfile中,如下所示。我的示例使用节点10.13,因为这是我们为Azure容器部署提取的构建映像所支持的

    RUN dotnet build ...
    
    # **** Adding Node - Start
    ADD https://nodejs.org/dist/v10.13.0/node-v10.13.0-win-x64.zip "C:\build\node-v10.13.0-win-x64.zip"
    RUN PowerShell Expand-Archive C:\build\node-v10.13.0-win-x64.zip C:/
    RUN PowerShell Rename-Item C:\node-v10.13.0-win-x64 node
    RUN SETX PATH C:\node
    ENTRYPOINT C:\node\node.exe
    # **** Adding Node - End
    
    FROM build AS publish
    RUN dotnet publish ...
    

    这是准确的,没有问题。然而,仍然没有人能解释为什么水疗项目的复选框被禁用。是的,我希望我也知道!这对我不管用。我得到一个错误,告诉我NodeJS不在我的路径中。有什么想法吗?