如何通过docker化dotnet核心角度模板应用程序?

时间:2019-06-28 19:30:10

标签: angular docker .net-core

我使用dotnet cli角度模板创建了一个Web应用程序。

dotnet new anguar Web

现在,我想对这个应用程序进行Docker化。我将以下Dockerfile添加到项目文件夹中。

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "Web.dll"]

然后在项目文件夹中运行以下命令。

sudo docker build -t accman-web .

但是我遇到以下错误:

  

/app/Web.csproj的恢复在5.01秒内完成。     Web-> /app/bin/Release/netcoreapp2.2/Web.dll     Web-> /app/bin/Release/netcoreapp2.2/Web.Views.dll     / bin / sh:2:/tmp/tmpa49d981806144cfd8e2cbdde42404952.exec.cmd:npm:找不到   /app/Web.csproj(46,5):错误MSB3073:命令“ npm install”退出,代码为127。   命令'/ bin / sh -c dotnet publish -c Release -o out'返回非零代码:1

要如何构建此简单应用程序的图像?

1 个答案:

答案 0 :(得分:4)

您似乎需要Angular的nodejs和npm。将此添加到您的Dockerfile中以在容器中安装nodejs和npm:

RUN apt-get update && \
    apt-get install -y wget && \
    apt-get install -y gnupg2 && \
    wget -qO- https://deb.nodesource.com/setup_6.x | bash - && \
    apt-get install -y build-essential nodejs

有关更多详细信息,请参见this博客文章