Герою развернуть docker образ с github - PullRequest
1 голос
/ 11 февраля 2020

У меня есть приложение nodejs express, обслуживающее сайт. Я развернул его с Heroku, используя buildpack / nodejs и Github. Каждый раз, когда я пу sh на Github, Heroku обнаруживает пу sh и запускает сценарий запуска npm.

Проблема в том, что мне нужно перейти к изображению Docker, содержащему nodejs приложение Я сделал это, и он работает локально, я могу запустить его с docker run -d -p 8000:8000 exporter, и он работает.

Я добавил файл docker .yml в папку root и нажал на Github. Но heroku все еще запускает скрипт npm в пакете. json, игнорируя docker .yml.

Есть ли способ заставить герою создавать контейнер из Dockerfile каждый раз, когда я отправляю sh в Github?

Ответы [ 2 ]

2 голосов
/ 11 февраля 2020

Чтобы Heroku понял ваш файл heroku.yml, вам нужно несколько вещей. Прежде всего вы должны убедиться, что Dockerfile находится в каталоге root. Во-вторых, вам необходимо убедиться, что вы создаете и используете среду docker. Наконец, убедитесь, что вы установили свой стек heroku на docker.

Итак, учитывая, что мы хотим убедиться, что дерево каталогов выглядит так:

|-my_app
     |-app_contents
|-Dockerfile
|-heroku.yml
|-etc...

И что heroku.yml файл выглядит примерно так:

build:
   docker:
      web: Dockerfile
run:
   web: docker run -d -p 8000:8000 exporte

и, наконец, запустите его в своем репозитории heroku:

heroku stack:set container

Затем просто убедитесь, что вы sh изменили свои данные.

Если это не поможет. Я бы порекомендовал обновить ваш пост следующим текстом:

  1. Дерево файлов
  2. Файл Docker
  3. Файл heroku.yml
1 голос
/ 11 февраля 2020

Благодаря ответу Тейлора Кохрана мне удалось решить проблему.

Сначала я попытался перейти по этой ссылке: https://devcenter.heroku.com/articles/container-registry-and-runtime

Это сработало, но я пришлось сделать это из кли.

После этого я удалил весь проект и переделал его. Я следовал указаниям Тейлора Кохрана и оттолкнулся от герою кли. Я увидел, что это сработало, и затем добавил развертывание github. И теперь каждый раз, когда я запускаю sh на Github, новый контейнер Docker автоматически создается и развертывается Heroku.

Примечание: я менял web: docker run -d -p 8000:8000 exporter на npm start

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