Ошибка развертывания приложения Laravel на AWS Elastic Beanstalk - PullRequest
0 голосов
/ 25 октября 2019

Я развертываю относительно простое приложение Laravel на AWS Elastic Beanstalk.

Я прохожу обычные процессы при подготовке приложения Laravel перед сжатием:

php artisan config:clear
php artisan route:clear
php artisan cache:clear
php artisan view:clear

Я также проверяювсе переменные .env установлены в свои производственные значения.

Поскольку приложение достаточно маленькое, я склонен оставлять /vendor и /node_modules в пакете сжатых приложений, который загружен, так что я не могудля запуска любых команд composer или npm не требуется SSH.

Я выбираю очевидные варианты в приложении и среде ELB: выбираю конфигурацию PHP, загружаю исходный пакет и устанавливаю для корневого каталога значение /public.

Вышеуказанные шаги работают примерно в 25% случаев. В 75% случаев экземпляр переходит в состояние «Ошибка» или «Серьезное состояние», и мне приходится пытаться создать новую среду.

Я не уверен, что идет не так, или даже где найти журналы проблемы,Журналы в области журналов ELB просто говорят что-то вроде: «Вы не можете запрашивать журналы, когда приложение не находится в состоянии готовности» и т. Д ...

1 Ответ

0 голосов
/ 30 октября 2019

Оказывается, проблема была в каталоге /node-modules и файлах package.json и package-lock.json. Причина в том, что после развертывания Elastic Beanstalk пытался выполнить npm update или аналогичную команду.

Эти файлы необходимы только для внешней разработки и не требуют развертывания на сервере. В разработке webpack используется для компиляции их в app.js, который я затем публикую на S3. Таким образом, ни один из этих интерфейсных файлов разработки не должен находиться на производственном сервере.

В качестве хорошей меры я также исключил composer.json и composer.lock, поскольку мне не нужно запускать composer update во времяразвертывание.

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