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

如何将'npm install'集成到ASP.NET CORE 2.1 Docker构建中

山阳辉
2023-03-14
问题内容

我还没有找到一种npm install在构建过程中做适当的事情来构建ASP.NET Core 2.1 Docker映像的方法。

Dockerfile看起来像这样(从Visual Studio生成的):

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY --from=frontend . .
COPY ["myProject.WebUi/myProject.WebUi.csproj", "myProject.WebUi/"]
COPY ["myProject.SearchIndex/myProject.SearchIndex.csproj", "myProject.SearchIndex/"]
COPY ["myProject.SearchIndex.Common/myProject.SearchIndex.Common.csproj", "myProject.SearchIndex.Common/"]

RUN dotnet restore "myProject.WebUi/myProject.WebUi.csproj"
COPY . .
WORKDIR "/src/myProject.WebUi"
RUN dotnet build "myProject.WebUi.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "myProject.WebUi.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "myProject.WebUi.dll"]

在以前的Microsoft映像中(例如aspnetcore-build:2.0),提供了第三方工具,例如npm,yarn,bower,pip等。

目前,我npm install在项目文件夹中执行本地操作。但是,对于像Docker Hub或Azure Container
Registry提供的自动构建功能,缺少注释模块。


问题答案:

找到了解决方案:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY --from=frontend . .
COPY ["myProject.WebUi/myProject.WebUi.csproj", "myProject.WebUi/"]
COPY ["myProject.SearchIndex/myProject.SearchIndex.csproj", "myProject.SearchIndex/"]
COPY ["myProject.SearchIndex.Common/myProject.SearchIndex.Common.csproj", "myProject.SearchIndex.Common/"]

RUN dotnet restore "myProject.WebUi/myProject.WebUi.csproj"
COPY . .
WORKDIR "/src/myProject.WebUi"
RUN apt-get update -yq && apt-get upgrade -yq && apt-get install -yq curl git nano
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && apt-get install -yq nodejs build-essential
RUN npm install -g npm
RUN npm install
RUN dotnet build "myProject.WebUi.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "myProject.WebUi.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "myProject.WebUi.dll"]


 类似资料:
  • 问题内容: 我必须使用CDT,mingw和cdt管理的构建功能(没有外部makefiles或构建环境)来重用当前在eclipse中开发的主要C ++项目。该项目本身由许多子项目组成。 我想将该构建集成到一个连续集成服务器(即jenkins)中,因此必须能够自动化无头构建。 到目前为止,我设法签出了该项目(从jenkins轻松完成),并使用以下命令使用eclipse以无头模式构建它: 但是还不够:

  • 问题内容: 我广泛使用Selenium进行集成测试。适用于所有常规内容(HTML / AJAX),但是当我尝试测试第三方ActiveX,Java applet和Flash组件时却一无所获。 我为此找到的解决方案是Sikuli。在本地运行良好,但是如何将其集成到Selenium中呢? 顺便说一句 如果相关,对于Selenium,我正在使用Python API。 问题答案: 请参阅Selenium R

  • 问题内容: 我现在有一个问题,关于Lucene。我试图制作一个Lucene源代码,该代码可以进行索引,并先使用RAMDirectory将它们存储在内存中,然后使用FSDirectory将该索引从内存中刷新到磁盘中。我已经对该代码进行了一些修改,但无济于事。也许有些人可以帮我一点忙。 因此,在将RAMDirectory放入FSDirectory之前,将其集成到此源代码中的最佳方法是什么。任何帮助将不

  • 问题内容: 我正在运行,尽管要在我的下一个应用程序中集成angularjs。 我认为从服务器端最好的方法是在域和控制器类中使用grails 集成。 但是在这里我被困住了。 如何通过grails与angularjs进行通信?(通过?,如果可以的话,如何将其集成?)什么是好的架构? 非常感谢您的回答!!! PS .:我知道有一个grails angular js插件。但是我确实发现有使用它的任何理由!

  • 我已经创建了这个控制器 报告consultas.jrxml位于folded resources上 当我运行te应用程序并运行endpoint时,我会出现以下错误: 你能帮我吗?

  • npminstall Make npm install fast and handy. Use as Cli Install $ npm install npminstall -g Usage In cnpm It is integrated in cnpm. $ npm install cnpm -g$ cnpm install // will use npminstall npminstal