gpt4 book ai didi

c# - ASP.NET Core 2.0 docker 容器在 Linux 上崩溃,退出代码为 132 (SIGILL)

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:23 28 4
gpt4 key购买 nike

我有一个针对 Linux 的 ASP.NET Core 2.0 Docker 镜像。这在我的 Windows 开发机器上运行良好。当我在 Linux 上将此 iamge 作为 docker 容器运行时,它会在向正在运行的容器发出请求时崩溃。没有添加日志条目,也没有生成异常。使用 Docker CLI,我可以看到容器停止,退出代码为 132,这似乎是“SIGILL”,“非法指令”。

在下面的测试文件中,添加时出现错误

asp-for="LoginCode"

在输入元素上。如果我忽略它,一切都会正常进行。

测试.cshtml:

@model LoginViewModel

Test page running.
@{
ViewData["Title"] = "Login";
}
<h1>@ViewData["Message"]</h1>

@try
{
using (Html.BeginForm())
{
<input type="text" class="form-control" placeholder="Logincode" asp-for="LoginCode" />
}
}
catch (Exception exc)
{
exc.ToString();
}

public class LoginViewModel
{
[Required]
public string LoginCode { get; set; }
[Required]
public string Paswoord { get; set; }
}

public class HomeController : Controller
{
public IActionResult Test()
{
return View("Test");
}
}

docker 文件:

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY *.sln ./
COPY MyProjectName/MyProjectName.csproj MyProjectName/
RUN dotnet restore
COPY . .
WORKDIR /src/MyProjectName
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyProjectName.dll"]

这是 Docker、ASP.NET Core 中的错误,还是我的错误?我是否有可能以任何方式解决此问题或找出错误发生的确切位置?我有类似的 ASP.NET Core 应用程序在同一台 Linux 机器上运行,没有问题,它们确实使用了 asp-for 标签?

最佳答案

您可以添加您的 Dockerfile 以供引用吗?通常来自 ASP.NET Core Base 的图像是多目标的。根据 docker 版本,它可以为 Windows 或 Linux 拉取特定版本的图像。您将需要针对 Linux 的镜像才能在 Linux 机器上运行

关于c# - ASP.NET Core 2.0 docker 容器在 Linux 上崩溃,退出代码为 132 (SIGILL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48808467/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com