Как мне сделать, чтобы addku планировщика heroku обновил мой репозиторий github и развернул его? - PullRequest
0 голосов
/ 08 июня 2019

У меня настроено задание cron на heroku для удаления некоторых файлов в определенной папке и их повторного создания с новыми данными.Мой код на Github и подключен к героку.Как мне обновить ветку github после запуска cron на heroku?

1 Ответ

0 голосов
/ 08 июня 2019

Вы действительно не хотите этим заниматься.Если у вас есть файлы, которые меняются, они должны храниться на S3, в базе данных или другом внешнем хранилище.

У династий Heroku есть эфемерные файловые системы, и heroku перезагружает ваши динамы не реже одного раза в 24 часа.Любые изменения в локальной файловой системе теряются при перезагрузке.

Это означает, что если вы измените файл, и heroku перезагрузится, прежде чем отправить этот файл в github, вы потеряете изменения.

Это также означает, что вам нужно будет повторно развертывать каждый раз, когда вы отправляетесь в репозиторий github.Поэтому, если вы часто нажимаете, вы будете постоянно повторно развертывать.

Теоретически, вот один из способов.

  • Установите heroku-apt-buildpack .
  • Настройте его для установки git.
  • Создайте пару ключей SSH.Поместите закрытый ключ в конфиг var вашего приложения heroku.Установите открытый ключ на github, чтобы ваш dyno мог перейти на github.
  • Сконфигурируйте задание cron для извлечения из git, внесения изменений в локальную файловую систему и push для git после внесения любых изменений локальной файловой системы, используя приватныйключ ssh из конфига var.
  • Если вы хотите, чтобы "последний толчок выиграл", семантика принудительный толчок.В противном случае вам нужно разобраться со случаем, когда push не удается «тянуть, возможно, разрешать конфликты, толкать»
  • Настроить heroku для автоматического развертывания из github при каждом нажатии на ветку master.

Но на самом деле - не делай этого.Поместите свои файлы в какую-нибудь внешнюю службу хранения.

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