Как настроить / настроить команды при развертывании на Heroku - PullRequest
0 голосов
/ 23 декабря 2018

Я развертываю свое приложение Laravel на Heroku.Я настроил конвейер для моего приложения, соединяющегося с GitHub.Я настроил его на автоматическое развертывание при обнаружении нового коммита в ветви разработки.Дело в том, что мне нужно настроить запуск некоторых других команд в каждом развертывании, например, для переноса моей базы данных.

Я не могу найти опцию для установки этих команд в интерфейсе Heroku.Как я могу это сделать?

enter image description here

Я нашел фазу выпуска Heroku, но я бы хотел настроить ее через панель управления Heroku.С фазой релиза я должен поместить команды в Procfile.Сложно запускать команды и управлять ими в зависимости от среды.

Например, в моей среде тестирования я мог бы захотеть запустить php artisan migrate --seed, но в моей производственной среде я мог бы выполнять свои миграции без заполнения базы данных..

1 Ответ

0 голосов
/ 23 декабря 2018

Вы можете предпочесть сделать это через веб-панель, но я не думаю, что это вариант.Метод Procfile фазы выпуска работает довольно хорошо.

Добавьте release процесс к вашему Procfile, например,

web: vendor/bin/heroku-php-apache2 public/
release: php artisan migrate

Фаза выпускапозволяет запускать определенные задачи перед развертыванием новой версии вашего приложения.Этап выпуска может быть полезен для таких задач, как:

  • Отправка CSS, JS и других ресурсов из пула вашего приложения в корзину CDN или S3
  • Заполнение или аннулирование хранилищ кэша
  • Запуск миграций схемы базы данных

Если задача фазы выпуска завершается неудачно, новый выпуск не развернут, оставляя текущий выпуск без изменений.

Редактировать: Команда деблокирования не подходит для непрерывной интеграции.Лучшим решением было бы использовать правильный инструмент CI.Heroku предоставляет один , но вы можете использовать сторонний инструмент CI, если вы предпочитаете.

Чтобы использовать инструмент Heroku CI, вам нужно включить Heroku CI в настройках конвейера и добавитьили обновите файл с именем app.json в корне вашего хранилища.В файле app.json вы можете настроить среду тестирования , которая может быть намного сложнее, чем просто заполнение базы данных.Например, вы можете включить дополнения Heroku для предоставления узла Redis или установки пользовательских переменных среды.

Для PHP ваши require-dev зависимости будут автоматически установлены в вашей тестовой среде.Вы можете заполнить базу данных в сценарии test-setup и определить свою тестовую команду в сценарии test .

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