簡體   English   中英

Docker + Angular2 + ASP.NET Core構建錯誤

[英]Docker + Angular2 + ASP.NET Core build errors

我正在嘗試從在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 docker build ...之前運行webpackdotnet publish -c Release -o out webpack正常工作。 新的Dockerfile如下所示:

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

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM