Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker &引用;无法启动';npm'&引用;远程访问页面时出现错误消息_Docker_Asp.net Core - Fatal编程技术网

Docker &引用;无法启动';npm'&引用;远程访问页面时出现错误消息

Docker &引用;无法启动';npm'&引用;远程访问页面时出现错误消息,docker,asp.net-core,Docker,Asp.net Core,我有一个ASP.NET核心应用程序运行在docker上的Raspberry Pi上,当我尝试通过Pi访问时,它显示得很好。当我尝试在本地网络上访问它时,我会看到以下异常页面: 这是我的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 node

我有一个ASP.NET核心应用程序运行在docker上的Raspberry Pi上,当我尝试通过Pi访问时,它显示得很好。当我尝试在本地网络上访问它时,我会看到以下异常页面:

这是我的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"]
你知道为什么我在另一台电脑上连接时会失败吗


谢谢

对于此错误,它表示您没有在映像中安装节点

对于内置的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
更新

您似乎处于生产环境中。由于在删除
环境:-ASPNETCORE\u 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”)

删除

environment: - ASPNETCORE_ENVIRONMENT=Development 

从compose.override文件修复了所有这些问题。我不知道为什么会出现问题。

您的dockerfile和asp.net核心项目模板是什么?您是否使用docker容器中的spa进行开发?@TaoZhou-我刚刚用dockerfileI更新了我的帖子。我在本地访问站点时,只有在远程访问时,才收到npm错误。@CodeSlinger512您说的本地访问是什么意思?我指的是访问托管该站点的计算机上的页面。我发现了问题所在。。。它是dotnet在docker-compose.override.yml文件中自动生成的一行。