为Angular项目启用Docker支持

时间:2017-08-25 11:33:21

标签: angular docker asp.net-core visual-studio-2017

Visual Studio 2017中是否有一种方法可以自动为asp.net-core Angular 项目启用Docker支持?创建新选项时禁用该选项。它仅适用于 Web应用程序(MVC)

在创建项目后,我能够为角项目启用Docker支持(Project-> Add-> Docker支持),但是当我启动应用程序时,我得到一个例外,即node.js不可用

  

发生System.AggregateException HResult = 0x80131500消息=一   或更多错误发生。 (无法启动Node进程。要解决   这样:

     

[1]确保已安装Node.js,并且可以在其中一个中找到   PATH目录。       当前的PATH环境变量是:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin       确保Node可执行文件位于其中一个目录中,或更新PATH。

     

[2]有关原因的更多详细信息,请参阅InnerException。)
  Source = StackTrace:at   System.Threading.Tasks.Task`1.GetResultCore(布尔   waitCompletionNotification)at   Microsoft.AspNetCore.Builder.WebpackDevMiddleware.UseWebpackDevMiddleware(IApplicationBuilder   appBuilder,WebpackDevMiddlewareOptions选项)   WebApplication3.Startup.Configure(IApplicationBuilder应用程序,   IHostingEnvironment env)in   C:\ Users \ temp \ Documents \ Visual Studio   2017 \ Projects \ WebApplication3 \ Startup.cs:第34行

     

内部异常1:InvalidOperationException:无法启动Node   处理。解决这个问题:。

     

[1]确保已安装Node.js,并且可以在其中一个中找到   PATH目录。       当前的PATH环境变量是:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin       确保Node可执行文件位于其中一个目录中,或更新PATH。

     

[2]有关原因的更多详细信息,请参阅InnerException。

     

内部异常2:Win32Exception:没有这样的文件或目录

如果无法自动创建它,我如何手动为我的Angular项目启用Docker支持?

1 个答案:

答案 0 :(得分:6)

我解决了我的问题。

我还需要在我的映像上安装nodejs,因为webpack需要它。我已将Dockerfile更改为也安装了nodejs版本6

FROM microsoft/aspnetcore:2.0
RUN apt-get update && \
    apt-get install -y wget && \
    apt-get install -y gnupg2 && \
    wget -qO- https://deb.nodesource.com/setup_6.x | bash - && \
    apt-get install -y build-essential nodejs
# Rest of Dockerfile

仅使用RUN apt-get update && apt-get install -y nodejs是不够的,因为这会安装nodejs的第4版,并且它安装在文件夹nodejs中,因此WebpackDevMiddleware找不到节点的可执行文件。