远程访问页面时出现“无法启动'npm'”错误消息

时间:2019-08-25 03:53:02

标签: docker asp.net-core

我有一个在Raspberry Pi上的docker中运行的ASP.NET Core应用程序,当我尝试通过Pi进行访问时,它显示的很好。当我尝试在本地网络上访问它时,出现以下异常页面:Error Page

这是我的Dockerfile:

FROM microsoft/dotnet:2.2-sdk AS builder
WORKDIR /source

RUN curl -sL https://deb.nodesource.com/setup_10.x |  bash -
RUN apt-get install -y nodejs

RUN npm --version

COPY *.csproj .
RUN dotnet restore

COPY ./ ./

RUN dotnet publish "./AspNetCoreApp.csproj" --output "./dist" --configuration Debug --no-restore

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
COPY --from=builder /source/dist .
EXPOSE 80
ENTRYPOINT ["dotnet", "AspNetCoreApp.dll"]

有什么想法为什么我在另一台计算机上连接时会失败?

谢谢!

2 个答案:

答案 0 :(得分:1)

对于此错误,表明您未在映像中安装节点。

对于内置的ms docker映像,默认情况下它未安装节点,您可以尝试使用以下命令来安装节点。

ROM mcr.microsoft.com/dotnet/core/aspnet:3.0-stretch-slim AS base
# BEGIN MODIFICATION - Node is needed for development (but not production)
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install --assume-yes nodejs
# END MODIFICATION

WORKDIR /app
EXPOSE 80
EXPOSE 443

更新

似乎您处于生产环境中。由于它在删除environment: - ASPNETCORE_ENVIRONMENT=Development时起作用的原因,是由

引起的
app.UseSpa(spa =>
{
    // To learn more about options for serving an Angular SPA from ASP.NET Core,
    // see https://go.microsoft.com/fwlink/?linkid=864501

    spa.Options.SourcePath = "ClientApp";

    if (env.IsDevelopment())
    {
        spa.UseAngularCliServer(npmScript: "start");
    }
});

对于开发环境,它将使用spa.UseAngularCliServer(npmScript: "start");

答案 1 :(得分:0)

删除

environment: - ASPNETCORE_ENVIRONMENT=Development 
从compose.override文件中的

修复了所有这些问题。我不知道为什么会这样。