Подтвердить что ты не робот

Эластичный Beanstalk Ruby/Rails должен установить git, поэтому установка установки пакета... но не

У меня возникла проблема с развертыванием нашего приложения rails. Я создал крючок, как пример в блоге AWS howto http://ruby.awsblog.com/post/Tx2AK2MFX0QHRIO/Deploying-Ruby-Applications-to-AWS-Elastic-Beanstalk-with-Git

packages:
  yum:
    git: []

даже я запускаю пакет пакетов для создания поставщика/кеша, чтобы иметь все драгоценные камни там... и все еще получаю: git://github.com/refinery/refinerycms-search.git(при 2-0-стабильном) не проверяется. Запустите bundle install (Bundler:: GitError)

любая помощь будет приятной, мы пытаемся переместить все наши приложения в EB. но seens, который git не устанавливает или что-то происходит. Мне нужен git экземпляр EB ec2, который он создает.

StackTrace:

Error message:
git://github.com/refinery/refinerycms-search.git (at 2-0-stable) is not checked out.         Please run `bundle install` (Bundler::GitError)
Exception class:
PhusionPassenger::UnknownError
Application root:
/var/app/current
Backtrace:
#   File    Line    Location
0   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/source.rb 801 in        `rescue in load_spec_files'
1   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/source.rb 799 in   `load_spec_files'
2   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/source.rb 381 in `local_specs'
3   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/source.rb 774 in `specs'
4   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 174 in `block in resolve'
5   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 172 in `each'
6   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 172 in `resolve' 
7   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 113 in `specs'
8   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 158 in `specs_for'
9   /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/definition.rb 147 in `requested_specs'
10  /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/environment.rb    23  in `requested_specs'
11  /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler/runtime.rb    11   in `setup'
12  /usr/share/ruby/1.9/gems/1.9.1/gems/bundler-1.2.1/lib/bundler.rb    116 in `setup'
13  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/utils.rb    326 in `prepare_app_process'
14  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/rack/application_spawner.rb 156 in `block in initialize_server'
15  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/utils.rb    563 in `report_app_init_status'
16  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/rack/application_spawner.rb 154 in `initialize_server'
17  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-  1002/support/lib/phusion_passenger/abstract_server.rb    204 in `start_synchronously'
18  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server.rb  180 in `start'
19  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/rack/application_spawner.rb 129 in `start'
20  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb   253 in `block (2 levels) in spawn_rack_application'
21  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server_collection.rb   132 in `lookup_or_add'
22  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb   246 in `block in spawn_rack_application'
23  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server_collection.rb   82  in `block in synchronize'
24      prelude>    10:in `synchronize'
25  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server_collection.rb   79  in `synchronize'
26  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb   244 in `spawn_rack_application'
27  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb   137 in `spawn_application'
28  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager.rb    16  in `spawn_application_with_env'
29  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/spawn_manager_orig.rb   275 in `handle_spawn_application'
30  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server.rb  357 in `server_main_loop'
31  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/lib/phusion_passenger/abstract_server.rb  206 in `start_synchronously'
32  /var/lib/passenger-standalone/3.0.17-x86_64-ruby1.9.3-linux-gcc4.4.6-1002/support/helper-scripts/passenger-spawn-server

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Я решил войти в экземпляр с ec2-пользователем и заметить, что Установлен git мне кажется, что у меня есть драгоценные камни, которые я до сих пор вижу. Когда я собираю список, все они появляются даже в том, о чем жалуется ошибка. Я замечаю, что когда я делаю общий список драгоценных камней то он НЕ появляется... но он должен использовать пучок один.

4b9b3361

Ответ 1

(Обратите внимание, что следующее обходное решение должно использоваться только в том случае, если должен использовать источники Git для зависимостей. Рекомендуется не устанавливать зависимости из внешних репозиториев Git, если этого можно избежать. Подробнее см. Ниже.)

При использовании Git поддерживаемых библиотек в Gemfile с помощью Passenger вы должны отключить общие драгоценные камни при установке (в дополнение к установке Git в указанном выше крючке). Вы можете сделать это, установив переменную среды BUNDLE_DISABLE_SHARED_GEMS Bundler в существующем файле .ebextensions/ruby.config следующим образом:

option_settings:
  - option_name: BUNDLE_DISABLE_SHARED_GEMS
    value: "1"
  - option_name: BUNDLE_PATH
    value: "vendor/bundle"

packages:
  yum:
    git: []

Отключение общих камней приведет к тому, что все зависимости будут представлены в вашем приложении в vendor/bundle, как указано переменной BUNDLE_PATH.

Обратите внимание, что по возможности вам следует избегать установки публичных библиотек из Git источников с вашим приложением. Использование Git для расположения библиотек представляет собой еще один момент сбоя для установки развертывания, поскольку репозиторий Git может быть временно недоступен или даже постоянно перемещен. Также имейте в виду, что принудительное развертывание установленных версий при развертывании приведет к тому, что развертывание Elastic Beanstalk будет намного медленнее при последующих развертываниях приложения с одинаковыми зависимостями. Это связано с тем, что библиотеки будут переустанавливаться при каждом развертывании вместо того, чтобы использовать общесистемную установку, которую Elastic Beanstalk выполняет Bundler по умолчанию.

Короче говоря, если есть официальная версия RubyGem библиотеки, о которой идет речь, вы должны использовать эту версию; и если нет, вы должны предложить автору библиотеки сообщить официальную версию RubyGem.

FYI ранее задавался аналогичный вопрос об этой проблеме Git с регулярными развертываниями Passenger/Rails: Rails 3: Пассажир не может найти Git драгоценные камни, установленные пакером

Ответ 2

Другой вариант - упаковать источник драгоценных камней непосредственно с вашим приложением, а затем указать на него пакет.

Скопируйте источник драгоценных камней в поставщика/драгоценные камни /mygem

Затем в вашем Gemfile:

gem 'mygem', path: File.join(File.dirname(__FILE__), 'vendor', 'gems', 'mygem')

Подробнее здесь: http://viget.com/extend/bundler-best-practices

Ответ 3

Amazon Elastic Beanstalk Ruby AMI нуждается в небольшой настройке, чтобы вы могли связывать драгоценные камни от git, не жертвуя скоростью развертывания, поведением, которое вы получаете из коробки с Capistrano и Heroku.

К счастью, API конфигурации Elastic Beanstalk позволяет делать необходимые настройки без необходимости поддерживать пользовательский AMI.

Здесь конфигурация эластичного бобового стежка, которую я использую для получения желаемого, обычного поведения развертывания Ruby с AMI Amazon: https://github.com/gkop/elastic-beanstalk-ruby.

Ответ 4

  • Хорошо после много исследований и испытаний, я полагаю, это было связано к Amazon, имеющему некоторые проблемы с величинами пассажиров env...
  • Мне удалось запустить ручные рельсы s, а затем он работал нормально и все драгоценные камни загружены.. но с пассажиром он не так нашел, что если я запустил

    пакет пакетов --all

  • - все это также упаковывает драгоценные камни git..

  • он будет запускаться как шарм.

  • чтобы иметь возможность запускать это время, в то время Amazon исправляет эту проблему с пакетом я создаю крючок и заставляю его запускать после каждой установки. не лучший способ, но работает.

Примечание: используя крючок, который, как я видел, не запускал команду для обновлений EB, поэтому я git добавляю поставщика/кэш и все его загружает по умолчанию.

Ответ 5

После проверки принятого ответа я обнаружил, что более простой .ebextensions/ruby.config был единственным конфигуратором, который работал:

packages:
  yum:
    git: []