При развертывании Rails 6.0 до AWS EB Webpacker требуется ошибка версии Node.js - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь загрузить приложение rails, которое было недавно обновлено с rails 5.2 до 6 до AWS Elasti c Beanstalk. У нас был кто-то еще, кто работал над этим, но с пандемией c ему пришлось отойти - и теперь наш сайт находится в подвешенном состоянии, и я не смог его обновить. Я искал много разных вариантов моей проблемы, но решения пока не работали.

Приложение работало на EB с рельсами 5.2. У меня приложение работает в 6.0 локально. Когда я eb deploy , я получаю эту ошибку:

MacBook-Pro:app $ eb deploy
Starting environment deployment via CodeCommit
--- Waiting for Application Versions to be pre-processed ---
Finished processing application version app-0e294-200420_110159
2020-04-21 00:22:24    INFO    Environment update is starting.      
2020-04-21 00:23:07    INFO    Deploying new version to instance(s).
2020-04-21 00:27:59    ERROR   [Instance: i-0e613ac1fe175f3f6] Command failed on instance. Return code: 1 Output: (TRUNCATED)...-- : Writing /var/app/ondeck/public/assets/application-06fe3df6175ba0def3d0e732489f883d0c09de.css.gz
Webpacker requires Node.js ">=10.13.0" and you are using v6.17.1
Please upgrade Node.js https://nodejs.org/en/download/
Exiting!. 
Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/11_asset_compilation.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
2020-04-21 00:27:59    INFO    Command execution completed on all instances. Summary: [Successful: 0, Failed: 1].
2020-04-21 00:28:00    ERROR   Unsuccessful command execution on instance id(s) 'i-0e613ac1fe175f3f6'. Aborting the operation.
2020-04-21 00:28:00    ERROR   Failed to deploy application.        

ERROR: ServiceError - Failed to deploy application.

До этого мне выдавалась ошибка с упаковщиком, которую я смог исправить, добавив файл в .ebextensions , которая устанавливает правильную версию пакета. Я подумал, что решение было бы аналогичным.

Этот пост был близок к моей проблеме: Развертывание rails реакционного приложения с гемом webpacker на AWS elasti c beanstalk

Таким образом, я добавил этот файл в свои .ebextensions на основе выбранного ответа на этот вопрос:

01_update_note.config

commands:
  01_download_nodejs:
    command: curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
  02_install_nodejs:
    command: yum -y install nodejs

Однако он не отображался сделать что-нибудь, я все еще получаю ту же ошибку. Я попробовал несколько вариантов файла, основанных на нескольких других сообщениях в блоге об этой проблеме, но ошибка остается. Кто-нибудь может указать мне правильное направление или предложить какое-либо понимание проблемы? Я прошу прощения за то, что еще не очень хорошо знаком с AWS или EB, но я сделаю все возможное, чтобы ответить на дополнительные вопросы.

1 Ответ

0 голосов
/ 05 мая 2020

Возможно, это вызвано yarn install позже. Я пробую следующие сценарии и удаляю yarn install, затем устанавливаю RAILS_SKIP_ASSET_COMPILATION=false, и это работает для меня.

commands:
  01_install_yarn:
    command: "sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo && curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash - && sudo yum install yarn -y"
  02_download_nodejs:
    command: curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
  03_install_nodejs:
    command: yum -y install nodejs
  04_install_packages:
    command: sudo yum install -y yarn
...