我尝试使用此指南测试如何将.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
我使用了这个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,但是,它们都不起作用。
有什么办法可以解决此崩溃问题?
答案 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
的完整演示项目