【发布时间】:2015-07-06 07:30:31
【问题描述】:
我在部署弹性 beanstalk rails 4 + ember cli 应用程序时遇到问题。我有一个 rails 应用程序,在根目录中我有一个名为“frontend”的文件夹,其中包含我由 ember CLI Rails 生成的 ember 应用程序。
我的配置: 运行 Ruby 2.1 (Puma) 的 64 位 Amazon Linux 2015.03 v1.3.1
我在运行 eb deploy 后从我的活动日志中遇到以下错误:
粗略地,我明白了
ERROR: Instance: i-25c139e7 Module: AWSEBAutoScalingGroup ConfigSet: null Command failed on instance. Return code: 1 Output: (TRUNCATED)...mber-cli-rails.rb:58:in `compile!'
查看 /var/log/eb-activity.log
我首先得到了很多 npm 错误!错误:尝试解锁尚未锁定的 X
紧随其后 npm 错误!系统 Linux 3.14.35-28.38.amzn1.x86_64 npm 错误!命令“/usr/bin/node”“/usr/bin/npm”“安装” npm 错误! cwd /var/app/ondeck/前端 npm 错误!节点-v v0.10.35 npm 错误! npm -v 1.4.28 npm 错误! npm 错误!可以在以下位置找到其他日志记录详细信息: npm 错误! /var/app/ondeck/frontend/npm-debug.log npm 错误!不好的代码 0 耙中止! EmberCLI Rails 要求您的 Ember 应用具有插件。
From within your EmberCLI directory please run:
$ npm install --save-dev ember-cli-rails-addon@0.0.11
in you Ember application root: /var/app/ondeck/frontend
Tasks: TOP => assets:precompile => ember:compile
(See full trace by running task with --trace) (Executor::NonZeroExitStatus)
所以我 ssh 进入指定的目录并运行 npm install,这也给我留下了很多关于授权的错误。当我通过 sudo 运行时,模块安装正确,但是当我重新部署我的应用程序时,它给了我完全相同的错误。
我已经尝试过 sudo NPM install 和 chown -R node_modules webapp 以便 webapp 组可以访问 node_modules 文件夹但没有成功。
【问题讨论】:
-
我自己也有同样的问题。有没有想过这个?
-
是的。 SSH 到您的 Elastic Beanstalk 实例,mkdir webapp on ~/../ 并运行“chown -u webapp:webapp ~/../webapp”。我认为 ember 期望具有用户 webapp 适当权限的根目录 webapp。
-
是的,这有点道理。我认为
npm试图锁定webapp用户主目录中的一些文件,我今天早些时候注意到webapp 用户没有主目录,但我没有同时创建一个。我担心如果应用程序尝试将负载扩展到另一个新实例,这种修复方法将不起作用。有经验吗? -
好点。当实例启动时,在 EB 配置文件中包含 mkdir 命令是个好主意,但我只是提出一个假设。
-
此外,如果您希望负载均衡器在部署任何实例时为 webapp 创建主目录,请在 .ebextensions container_command 下的 .config 文件的 container_commands 中包含类似内容:“sudo rm -r - f ~/../webapp; sudo mkdir ~/../webapp; sudo chown webapp:webapp ~/../webapp”。我相信,这应该在任何实例的应用程序部署之前执行。现在测试它..
标签: ruby-on-rails amazon-web-services ember.js amazon-elastic-beanstalk