asp.net - Docker + Angular2 + ASP.NET Core构建错误

标签 asp.net angular docker

我正在尝试从在ASP.Net Core上运行的Angular2应用程序构建Docker镜像。我使用了https://github.com/MarkPieszak/aspnetcore-angular2-universal/blob/master/Dockerfile中的Dockerfile来创建我的Dockerfile,除了运行我创建的图像时出现以下错误之外,它几乎可以正常工作:
Uncaught ReferenceError: vendor_ is not defined
因此,我认为问题出在webpack内,并添加了以下代码:

RUN webpack --config webpack.config.vendor.js

但是现在我得到了这个错误:
/bin/sh: 1: webpack: not found

之后,我尝试:
RUN npm install webpack -g
RUN npm install webpack-cli -g

但是,这样的错误总是会失败,例如:
Error: Cannot find module 'js.clone'

这就是我为Dockerfile复制的Dockerfile,并添加到上述代码行中:
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
RUN apt-get -qq update && apt-get install -y build-essential
RUN curl -sL https://deb.nodesource.com/setup_10.x |  bash -
RUN apt-get install -y nodejs
RUN npm i -g --unsafe-perm node-sass && npm rebuild --unsafe-perm node-sass -f
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY Asp2017.csproj .
RUN apt-get -qq update && apt-get install build-essential -y && apt-get install -my wget gnupg && apt-get -qq -y install bzip2 
RUN curl -sL https://deb.nodesource.com/setup_10.x |  bash -
RUN apt-get install -y nodejs
RUN dotnet restore ./Asp2017.csproj
COPY . .
WORKDIR /src/
RUN dotnet build Asp2017.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish Asp2017.csproj -c Release -o /app

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

所以我的问题是:
Angular2 + ASP.NET Core的Dockerfile的最佳实践是什么?

感谢您的任何想法和帮助!

最佳答案

对于其他面临类似问题的人:实际上,我只能通过在webpack之前运行dotnet publish -c Release -o outdocker build ...来使其正常工作。
新的Dockerfile如下所示:

    FROM microsoft/dotnet:aspnetcore-runtime
    WORKDIR /app
    COPY out .
    EXPOSE 7000/tcp
    ENTRYPOINT ["dotnet", "myApp.dll"]

希望能帮助到你!

关于asp.net - Docker + Angular2 + ASP.NET Core构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51771270/

相关文章:

ngx-extended-pdf-viewer 中的 Angular 6+ 绑定(bind) [src]

c# - 如何在 GridView 行悬停上显示工具提示

c# - 从多个位置创建脚本包

通过 Angular 应用程序的 Node.js POST 请求返回错误 404 “not found"

angular - 创建类以在 Angular 4 中保存所有自定义验证的正确方法

azure - 如何通过 Azure 容器应用程序部署 Streamlit 应用程序?

linux - Linux 上的 Nancy 使用 100% CPU

docker - 如何制作WordPress网站的Docker镜像?

c# - "Operation not implemented yet"错误

jquery - 如何从Jquery调用asp.net方法