.Net Core 2.1 App вылетает при развертывании в Heroku с помощью Docker - PullRequest
0 голосов
/ 13 февраля 2019

Я пытался проверить, как развернуть приложение .net core в 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

Я использовал этот Dockerfile:

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

Я , используя опубликованный вывод (так что он должен быть уже собран) для создания образа и отправки в Heroku.Эти процессы успешны.Я перепробовал несколько руководств с разными файлами докеров, но во всех случаях получал один и тот же результат.Я также пытался использовать buildpack-пакеты, такие как https://github.com/jincod/dotnetcore-buildpack, однако ни один из них не работал.

Есть ли способ исправить это падение?

1 Ответ

0 голосов
/ 13 февраля 2019

Вы пропустили этап сборки.Попробуйте добавить это в свой 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...