【发布时间】:2014-09-07 01:23:41
【问题描述】:
我已成功设置我的 aws 环境。但是我有一个问题。在我的 Gemfile 我有以下行:
gem 'activeadmin', :github => 'gregbell/active_admin'
当我执行git aws.push 时,我可以在 aws 日志中看到以下错误:
/usr/local/share/ruby/gems/2.0/gems/bundler-1.3.5/lib/bundler/source/git.rb:177:in `rescue in load_spec_files': git://github.com/gregbell/active_admin.git (at master) is not checked out. Please run `bundle install` (Bundler::GitError)
我可以通过创建这个文件来解决这个问题:.ebextensions/ruby.config
option_settings:
- option_name: BUNDLE_DISABLE_SHARED_GEMS
value: "1"
- option_name: BUNDLE_PATH
value: "vendor/bundle"
packages:
yum:
git: []
这会将所有内容打包到供应商/捆绑包中,并且我的应用程序会启动正确。
但是这种方法有两个问题:
- 部署需要很长时间,因为每次都需要安装所有的gem
-
当我 ssh 进入 EC2 实例时,我不再能够执行命令。例如,我必须启动一个 rpush 守护进程。在本地,这适用于
bundle exec rpush development,但在 EC2 上会导致:捆绑执行 rpush /usr/local/share/ruby/gems/2.0/gems/bundler-1.3.5/lib/bundler.rb:284:警告:不安全的世界可写目录 /var/app/current/vendor/bundle/bin 在 PATH,模式 040777 git://github.com/gregbell/active_admin.git (在主人)没有签出。请运行捆绑安装
是否有其他方法可以正确安装 gems 并同时使用系统 gems?或者如果这不可能,我如何在捆绑宝石时启动rpush?
【问题讨论】:
-
类似于stackoverflow.com/questions/13642171/… 在那里查看一些答案。
标签: ruby ruby-on-rails-4 amazon-web-services bundler amazon-elastic-beanstalk