.Net Core на Heroku с докером - PullRequest
0 голосов
/ 23 июня 2018

Контекст

Я пытаюсь развернуть ядро ​​aspnet образец приложения на Heroku с докером, но не работает.

репо: https://github.com/mykeels/sample-web-api
руководство: https://blog.devcenter.co/deploy-asp-net-core-2-0-apps-on-heroku-eea8efd918b6

Envoriment

Framework .NET Core 2.1.201
SO: W10 Сборка 17134,1
Докер: Докер для Windows Версия 18.03.1-ce-win65 (17513)

Шаги, которые я сделал

dotnet publish enter image description here

сборка докера enter image description here

Heroku Login enter image description here

Tag and Push enter image description here

Файл Docker enter image description here

Приложение на Heroku enter image description here

Не работает enter image description here

Я тоже пробовал это: enter image description here

Вопрос: что не так?

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

РЕШЕНИЕ

Первый: заменить команды docker tag и docker push на:

heroku container: push web -a <app-name>

Именно тогда я обнаружил, что heroku Registry соединение не было установлено.

Команда для настройки:

heroku container: login

Эта команда работает только с окнами на терминале по умолчанию (не работает в cmder с bash).

или команда

docker login --username = _ --password = $ (heroku auth: token) registry.heroku.com

Теперь просто выполните следующие команды.

Push

heroku container: push web -a <app-name>
//example:
heroku container: push web -a sample-web-carlos

Выпуск

heroku container: release web -a <app-name>
//example:
heroku container: release web -sample-web-carlos

Подробнее:
https://github.com/heroku/heroku-container-registry/issues/45
https://devcenter.heroku.com/articles/container-registry-and-runtime

Спасибо Мохсину Мехмуду за помощь!

0 голосов
/ 03 октября 2018

Вот еще один способ сделать эту работу с Heroku.

Создайте Dockerfile в корне вашего решения

#https://github.com/dotnet/dotnet-docker/tree/master/samples/aspnetapp

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /app

COPY . .

CMD ASPNETCORE_URLS=http://*:$PORT dotnet [THE NAME OF YOUR FILE].dll

Создайте простой пакетный файл (предполагаемая ОС Windows) с именем " publish.bat "

ПРИМЕЧАНИЕ - При запуске dotnet clean папка публикации не очищается. Я рекомендую вам удалить содержимое каталога перед публикацией. Вы можете добавить его в командный файл по своему усмотрению.

REM - This file assumes that you have access to the application and that you have docker installed
REM : Setup your applications name below
SET APP_NAME=""

REM - Delete all files and folders in publish
del /q ".\bin\Release\netcoreapp2.1\publish\*"
FOR /D %%p IN (".\bin\Release\netcoreapp2.1\publish\*.*") DO rmdir "%%p" /s /q

dotnet clean --configuration Release
dotnet publish -c Release
copy Dockerfile .\bin\Release\netcoreapp2.1\publish\
cd .\bin\Release\netcoreapp2.1\publish\
call heroku container:login
call heroku container:push web -a %APP_NAME%
call heroku container:release web -a %APP_NAME%

Из корня вашего решения теперь просто запустите publish.bat

c:\dev\my-amazing-app\publish.bat

Информация:

0 голосов
/ 24 июня 2018

Хорошо, мне удалось выяснить это https://simple -web-mohsin.herokuapp.com / api / values ​​

  1. Нет необходимости в ENTRYPOINT ["dotnet", "Blogifier.Web.dll"] изменении, как предложено выше.
  2. После команды docker push необходимо выполнить команду release согласно this

Запустите следующую команду после команды Docker Push

heroku container:release web --app={app name}

для моего случая это было

heroku container:release web --app=simple-web-mohsin

Примечание: слово web в приведенной выше команде относится к типу процесса и должно вводиться как есть.

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