使用Docker部署到Heroku时.Net Core 2.1 App崩溃

时间:2019-02-13 10:04:51

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

我尝试使用此指南测试如何将.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.952 + 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之类的buildpack,但是,它们都不起作用。

有什么办法可以解决此崩溃问题?

1 个答案:

答案 0 :(得分:0)

您错过了构建阶段。尝试将其添加到您的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

的完整演示项目