当前位置: 首页 > 面试题库 >

用于SPA应用程序的.NET Core Docker映像

乜栋
2023-03-14
问题内容

在创建新的ASP.NET Core MVC应用程序时,特别是与React /
Redux(或其他必需的Node.js)模板一起使用时,正确使用的Docker映像是什么?如果不是特定的映像,对于由ASP.NET Core
MVC支持的Node.js应用程序,应在Dockerfile中遵循哪些命令或过程

除了运行支持的MVC网站外,我不需要框架的SDK版本。

dotnet new reactredux

运行时映像未安装Node.js,在尝试运行容器时将出错。

Dockerfile:

FROM microsoft/aspnetcore:latest

ARG source=./bin/Debug/netcoreapp2.0/publish/
WORKDIR /app
COPY $source .

EXPOSE 80
ENTRYPOINT ["dotnet", "Project.dll"]

错误:

Unhandled Exception: System.AggregateException: One or more errors occurred. (Failed to start Node process. To resolve this:.

[1] Ensure that Node.js is installed and can be found in one of the PATH directories.
    Current PATH enviroment variable is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    Make sure the Node executable is in one of those directories, or update your PATH.

我正在使用的项目已从用于.NET Standard 1.1(独立)的ASP.NET MVC升级到新的.NET Standard 2.0 React /
Redux项目。


问题答案:

问题是您的dockerfile(microsoft / aspnetcore:latest)中的基础映像没有安装节点。

因此,您必须安装节点才能运行该项目。这是我想到的dockerfile:

FROM microsoft/aspnetcore:2.0
ARG source
EXPOSE 80 5102
ENV ASPNETCORE_URLS http://*:80
RUN apt-get -qq update && apt-get -qqy --no-install-recommends install wget gnupg \
    git \
    unzip

RUN curl -sL https://deb.nodesource.com/setup_6.x |  bash -
RUN apt-get install -y nodejs
WORKDIR /app
COPY ${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依赖性,因此它们的重量较轻。



 类似资料:
  • 问题内容: 在创建新的ASP.NET Core MVC应用程序时,特别是在React / Redux(或其他需要Node.js的)模板上使用什么正确的Docker映像?如果不是特定的映像,对于由ASP.NET Core MVC支持的Node.js应用程序,应该在Dockerfile中遵循什么命令或过程? 除了运行支持MVC站点外,我不需要框架的SDK版本。 运行时映像未安装Node.js,在尝试运

  • 问题内容: 我们正在寻找构建正在创建的应用程序前端的选项,并正在尝试评估一种对我们有用的工具,并为我们提供前进的最佳平台。 这是一个Node.js项目。我们最初的计划是使用Express并沿这条路线走,但是我们决定在开始此阶段之前,最好回顾一下那里的内容。我们的应用程序有几个我们认为不适合单页模型的领域,因为它们是从应用程序的角度关联的,而不是从一个角度来看的。 我们已经看到了一些可用于构建客户端

  • 本文向大家介绍vue中SPA单页面应用程序详解,包括了vue中SPA单页面应用程序详解的使用技巧和注意事项,需要的朋友参考一下 一、SPA的概述 SPA(single page application)单页面应用程序,在一个完成的应用或者站点中,只有一个完整的html页面,这个页面有一个容器,可以把需要加载的代码片段插入到该容器中。 SPA的工作原理:   eg:  http://127.0.0.

  • 在我的项目(带有nodeJs后端的单页应用程序)中,我想提供一个SAML单点登录。 虽然数据流和身份验证过程对我来说很清楚,但我对实现有点困惑。 这个想法是让用户在应用程序设置中为他们的帐户本身配置他们的SAML身份验证提供商,而其他SSO-Login提供商如Google、Facebook、Twitter等还不够。 有没有可能实现一个通用的SAML模块,即给定的url能够处理对任意自定义身份提供者

  • 但是当我点击http://localhost:5201/app1/app1/app1-user-profile时,我可以在浏览器中看到所需的响应。那么,当我从其他apps/4200端口路由时,是什么阻止我获得app1的仪表板呢? 有人能在这方面指导我吗?我是否需要在根容器和其他微应用程序中配置代理设置?single-spa能在这个代理配置中帮助我吗?

  • 之后,我通过以下内容开始图像: 命令提示符显示服务器已成功启动,当我试图访问web应用程序时,这也可以工作: 显示适当的HTML欢迎页。