【问题标题】:.Net Core 2.1 App crashes when deployed to Heroku using Docker.Net Core 2.1 应用程序在使用 Docker 部署到 Heroku 时崩溃
【发布时间】:2019-02-13 10:04:51
【问题描述】:

我尝试使用本指南测试如何将 .net 核心应用程序部署到 Heroku: https://blog.devcenter.co/deploy-asp-net-core-2-0-apps-on-heroku-eea8efd918b6

它在指南中使用了这个存储库: https://github.com/mykeels/sample-web-api ,我也尝试使用示例 API 自己创建项目。

我总是遇到同样的错误:

2019-02-13T09:37:07.748661+00:00 heroku[web.1]:使用命令/bin/sh -c ASPNETCORE_URLS\=http://\*:\30806\ dotnet\ SampleWebApi.dll启动进程 2019-02-13T09:37:09.958842+00:00 heroku[web.1]:状态从开始变为崩溃 2019-02-13T09:37:10.034930+00:00 heroku[web.1]:状态从崩溃变为开始 2019-02-13T09:37:09.940160+00:00 heroku[web.1]:进程以状态 145 退出

Heroku logs

我使用了这个 Dockerfile:

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . .
CMD ASPNETCORE_URLS=http://*:$PORT dotnet SampleWebApi.dll

我正在使用已发布的输出(因此它应该已经构建)来创建图像并推送到 Heroku。这些过程是成功的。我尝试了很多具有不同 docker 文件的指南,但在所有情况下我都得到了相同的结果。我也尝试使用诸如 https://github.com/jincod/dotnetcore-buildpack 之类的构建包,但是它们都不起作用。

有没有办法解决这个崩溃问题?

【问题讨论】:

标签: .net docker heroku deployment .net-core


【解决方案1】:

您错过了构建阶段。尝试将此添加到您的 Dockerfile 中

Dockerfile

FROM microsoft/dotnet:2.1-sdk-alpine AS builder
WORKDIR /source
COPY . .
RUN dotnet restore
RUN dotnet publish -c Release -r linux-musl-x64 -o /app

FROM microsoft/dotnet:2.1-aspnetcore-runtime-alpine
WORKDIR /app
COPY --from=builder /app .
ENTRYPOINT ["dotnet", "SampleWebApi.dll"]

您还可以查看我部署到 Heroku 的完整演示项目 https://github.com/jincod/AspNetCoreDemoApp

【讨论】:

  • 我克隆了您的演示,但在尝试推送到 heroku 时出现此错误:错误 MSB3073:命令“npm install”退出,代码为 127。
  • 你添加了 node.js buildpack 吗?能否附上构建日志?
  • 错过了那个。演示工作正常。谢谢你。现在我将尝试部署我的应用,看看它是否有效
  • 我尝试使用您的 buildpacks 部署带有 api 的 asp.net core web 应用程序,虽然部署成功,但它崩溃了。我只使用了 dotnet buildpack,因为我现在不需要 node js。以下是日志:
  • 2019-02-15T18:28:20.507545+00:00 app[web.1]:无法加载 xiz,错误:libunwind.so.8:无法打开共享对象文件:没有这样的文件或目录 2019-02-15T18:28:20.507572+00:00 app[web.1]:无法在 '/app/heroku_output/libcoreclr.so' 2019-02-15T18:28:33.127806+00 处绑定到 CoreCLR: 00 heroku[web.1]:使用命令启动进程cd /app/heroku_output && ./aspnetapi 2019-02-15T18:28:35.733291+00:00 heroku[web.1]:状态从开始变为崩溃 2019-02-15T18:28:35.710316 +00:00 heroku[web.1]:进程以状态 136 退出
猜你喜欢
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-11
  • 2020-09-24
  • 2020-11-08
相关资源
最近更新 更多