Angular 如何dockerize dotnet core角模板应用程序?

Angular 如何dockerize dotnet core角模板应用程序?,angular,docker,.net-core,Angular,Docker,.net Core,我使用dotnetcli模板创建了一个web应用程序 dotnet new anguar Web 现在我想将此应用程序dockerize。我将以下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 # Co

我使用dotnetcli模板创建了一个web应用程序

dotnet new anguar Web
现在我想将此应用程序dockerize。我将以下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 .
然后在项目文件夹中运行以下命令

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


要构建这个简单应用程序的映像,我必须做些什么?

对于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

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

您似乎没有安装节点,或者它不在您的路径中。如果您只是运行npm--version是否有效?@Andy是的,我已经安装了node。安装的版本是6.9.0。我可以在我的开发机器上本地运行和调试应用程序。我在尝试为应用程序构建docker容器时遇到了我提到的错误。非常感谢。它与angular 6的以下更新配合得非常好: