Visual Studio 2017中是否有一种方法可以自动为asp.net核心 Angular 项目启用Docker支持?创建新选项时,该选项被禁用。它仅适用于 Web应用程序(MVC) 。
创建项目后,我可以为角度项目启用Docker支持(项目->添加-> Docker支持),但是当我启动应用程序时,出现一个异常,提示node.js不可用。
发生System.AggregateException HResult = 0x80131500 Message =发生一个或多个错误。(无法启动Node进程。要解决此问题:。 [1]确保已安装Node.js,并且可以在PATH目录之一中找到它。当前的PATH环境变量为:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin确保Node可执行文件在这些目录之一中,或者更新您的目录路径。 [2]有关原因的更多详细信息,请参见InnerException。) Source = StackTrace:位于Microsoft.AspNetCore.Builder.WebpackDevMiddleware.UseWebpackDevMiddleware(IApplicationBuilder appBuilder,WebpackDevMiddlewareOptions选项)上System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)处。 ),位于C:\ Users \ temp \ Documents \ Visual Studio 2017 \ Projects \ WebApplication3 \ Startup.cs:第34行中的WebApplication3.Startup.Configure(IApplicationBuilder应用程序,IHostingEnvironment env) 内部异常1:InvalidOperationException:无法启动Node进程。解决此问题的方法: [1]确保已安装Node.js,并且可以在PATH目录之一中找到它。当前的PATH环境变量为:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin确保Node可执行文件在这些目录之一中,或者更新您的目录路径。 [2]有关原因的更多详细信息,请参见InnerException。 内部异常2:Win32Exception:没有这样的文件或目录
发生System.AggregateException HResult = 0x80131500 Message =发生一个或多个错误。(无法启动Node进程。要解决此问题:。
[1]确保已安装Node.js,并且可以在PATH目录之一中找到它。当前的PATH环境变量为:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin确保Node可执行文件在这些目录之一中,或者更新您的目录路径。
[2]有关原因的更多详细信息,请参见InnerException。) Source = StackTrace:位于Microsoft.AspNetCore.Builder.WebpackDevMiddleware.UseWebpackDevMiddleware(IApplicationBuilder appBuilder,WebpackDevMiddlewareOptions选项)上System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)处。 ),位于C:\ Users \ temp \ Documents \ Visual Studio 2017 \ Projects \ WebApplication3 \ Startup.cs:第34行中的WebApplication3.Startup.Configure(IApplicationBuilder应用程序,IHostingEnvironment env)
内部异常1:InvalidOperationException:无法启动Node进程。解决此问题的方法:
[2]有关原因的更多详细信息,请参见InnerException。
内部异常2:Win32Exception:没有这样的文件或目录
如果无法自动创建,如何手动为Angular项目启用Docker支持?
我解决了我的问题。
我还需要在映像上安装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-getinstall-ynodejs还不够,因为这会安装nodejs的第4版,并且已将其安装在folder中nodejs,因此WebpackDevMiddleware未找到该节点的可执行文件。
RUN apt-get update&&apt-getinstall-ynodejs
nodejs
WebpackDevMiddleware