无法在 ElasticBeanstalk 上部署 Rails 5 VueJS 应用程序

Posted

技术标签:

【中文标题】无法在 ElasticBeanstalk 上部署 Rails 5 VueJS 应用程序【英文标题】:Unable to to deploy a Rails 5 VueJS app on ElasticBeanstalk 【发布时间】:2020-01-11 10:37:45 【问题描述】:

我正在尝试将 VueJS rails 5 应用程序部署到 ElasticBeanstalk 上,当我尝试时遇到 EB 实例上的命令失败错误。

我尝试了一些建议,例如重新生成锁定文件,但无法通过下面显示的错误:

Command failed on instance. Return code: 1 Output: (TRUNCATED)...lation. 
error @nuxt/opencollective@0.3.0: The engine "node" is incompatible with 
this module. Expected version ">=8.0.0". Got "6.17.1" error Found 
incompatible module. info Visit https://yarnpkg.com/en/docs/cli/install 
for documentation about this command. 

Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/09_yarn_install.sh failed. 
For more detail, check /var/log/eb-activity.log using console or EB CLI.

这里发生了什么,我怎样才能让部署工作?

谢谢

【问题讨论】:

【参考方案1】:

这个问题的答案是 EBS 使用了像 6.X 这样的超级老版本的 NodeJS。

您需要在 /.ebextensions 中添加一些命令来删除旧的和更新。以下是我发现的特定于升级 NodeJS 的代码的一部分

# .ebextensions/fix_rails_6.config

commands:

  00_remove_node_6_if_present:
    command: "/bin/rm -rf /var/cache/yum && /usr/bin/yum remove -y nodejs && /bin/rm /etc/yum.repos.d/nodesource* && /usr/bin/yum clean all && rm -rf /var/cache/yum"
    ignoreErrors: true
  01_download_nodejs:
    command: "curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -"
  02_install_nodejs:
    command: "yum -y install nodejs"

【讨论】:

以上是关于无法在 ElasticBeanstalk 上部署 Rails 5 VueJS 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法将多容器 docker 部署到 ElasticBeanstalk

由于 ImportError,Celery Django 部署因 Elastic Beanstalk 失败:无法导入名称“Celery”(ElasticBeanstalk::ExternalInvoc

在 ElasticBeanstalk 上部署多容器应用程序时出现 CannotPullContainerError

无法提供目录 /var/www/html/public/ [Laravel - Aws Elasticbeanstalk]

Elastic Beanstalk:部署 Django for mac,无法安装 EB

如何在 AWS elasticbeanstalk 上部署 symfony 3 项目