【问题标题】:How to add angular build with asp.net core build in a dockerfile?如何在 dockerfile 中使用 asp.net 核心构建添加角度构建?
【发布时间】:2021-06-24 17:25:02
【问题描述】:

我在同一个解决方案中创建了一个 Asp.Net Core Web API 项目和一个单独的 Angular 应用程序。我没有选择 SPA 模板来分离关注点。我已经能够对 Asp.Net Core WebAPI 构建和运行步骤进行 docker 化,并且还添加了角度构建。但是当我构建 dockerfile 时,我没有看到 angular/npm 构建相关的消息,它们也没有构建。我没有将 angular 的构建输出副本配置到 wwwroot 文件夹,但在此之前我希望看到我的 angular 应用程序也使用 Asp.Net Core 构建构建。所以任何人都可以帮助我解决这个问题。下面是我的dockerfile:

# ASP.NET CORE BUILD STAGE
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS dotnet-build

WORKDIR /app
COPY    . .
RUN dotnet restore
RUN dotnet publish -c Release -o /publish


# ANGULAR BUILD
FROM node:12.7-alpine AS ng-build

WORKDIR /app
COPY ./ClientApp/package.json /app

RUN npm install
COPY ./ClientApp /app
RUN npm run build --prod


# RUNTIME IMAGE STAGE
FROM mcr.microsoft.com/dotnet/aspnet:5.0

WORKDIR /publish
COPY --from=dotnet-build /publish .

ENTRYPOINT [ "dotnet","/publish/DemoApp.dll" ]

【问题讨论】:

    标签: angular docker asp.net-core


    【解决方案1】:

    我认为,如果您将 ng-build 阶段“图像”的引用添加到运行时阶段“图像”,它可能会为您运行 npm installng build --prod。 我认为您应该将运行时“图像”阶段更新为以下内容:

    # RUNTIME IMAGE STAGE
    FROM mcr.microsoft.com/dotnet/aspnet:5.0
    
    WORKDIR /publish
    COPY --from=dotnet-build /publish .
    COPY --from=ng-build /dist/ClientApp /publish/wwwroot
    ENTRYPOINT [ "dotnet","/publish/DemoApp.dll" ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 2022-01-14
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      相关资源
      最近更新 更多