问题是您的dockerfile(microsoft / aspnetcore:latest)中的基础映像没有安装节点。
因此,您必须安装节点才能运行该项目。这是我想到的dockerfile:
FROM microsoft/aspnetcore:2.0ARG sourceEXPOSE 80 5102ENV ASPNETCORE_URLS http://*:80RUN apt-get -qq update && apt-get -qqy --no-install-recommends install wget gnupg git unzipRUN curl -sL https://deb.nodesource.com/setup_6.x | bash -RUN apt-get install -y nodejsWORKDIR /appCOPY ${source:-obj/Docker/publish} .ENTRYPOINT ["dotnet", "Project.dll"]
请注意,在dockerfile的第5行中,我如何运行命令来更新apt-get。然后在第8-9行中将节点安装到Docker映像
仍然存在问题,无法从webpack替换热模块。甚至无法完全刷新。我仍在寻找它。
更新: 所以我调查了热模块更换问题,它似乎是Windows的docker的局限性。
解决方法是配置webpack,以便它可以告诉浏览器在确定的时间内轮询更改。查看此链接以了解如何配置它
更新: 做更多的研究,我发现Microsoft具有可用于构建项目的映像,该映像称为:microsoft / aspnetcore-
build。该映像具有构建所需的所有依赖关系(包括nodejs)。
因此,最后,我要做的是保持Dockerfile不变(以microsoft /
aspnetcore:2.0作为基础映像),并创建了一个新的Dockerfile进行开发,该文件引用了我之前提到的构建映像。在docker
compose的帮助下,我根据环境切换了Dockerfile。
这种方法似乎更方便,因为当将图像部署到生产环境时,它们应该已经准备好所有的javascript代码(对于带有angular
2,react等的spa应用程序),换句话说,它们不应该具有nodejs依赖性,因此它们的重量较轻。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)