Фэй настроен на производство
Я настроил Faye на localhost и работает нормально.
Сейчас я пытаюсь развернуть его на DigitalOcean VPS с помощью службы развертывания Cloud66. Для запуска команды я использую хук after_rails.
рэкап $RAILS_STACK_PATH/faye.ru -s thin -E производство
Это дает мне ошибку:
Ошибка при развертывании: Ошибка во время ловушки after_rails: Сервер: не указан. Не удалось выполнить команду: /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- faye (LoadError) from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
require 'от /var/deploy/anabol/web_head/current/faye.ru:1:in block in <main>' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in
instance_eval 'из /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in initialize' from /var/deploy/anabol/web_head/current/faye.ru:in
новый 'от /var/deploy/anabol/web_head/current/faye.ru:in <main>' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in
eval 'из /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in new_from_string' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:40:in
parse_file 'из /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:277:in build_app_and_options_from_config' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:199:in
app 'от /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:314:in wrapped_app' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:250:in
начинать с /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:141:in start' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/bin/rackup:4:in
'из / usr / local / bin / rackup: 23: in load' from /usr/local/bin/rackup:23:in
'
репозиторий github: https://github.com/gwuix2/anabol
Любые предложения, в чем может быть проблема? Не знаю с чего начать.
2 ответа
Я написал некоторую документацию о том, как решить эту проблему на случай, если кто-то еще столкнется с ней. Вы можете найти его здесь: http://community.cloud66.com/articles/faye-on-cloud-66
Отказ от ответственности: я работаю на Cloud 66.
Поддержка Cloud 66 решила мою проблему:
Всем привет,
Мы запускаем Faye в нашем собственном стеке. Мы фактически запускаем его за тонким - и отслеживаем как процесс в стеке. То, как мы делаем это с четырьмя файлами - смотрите их детали ниже:
1) RAILS_ROOT/.cloud66/deploy_hooks.yml
production:
before_rails:
- source: /.cloud66/files/add_thin_and_faye.sh
destination: ~/add_thin_and_faye.sh
target: rails
execute: true
sudo: true
apply_during: build_only
run_on: all_servers
2) RAILS_ROOT/.cloud66/files/add_thin_and_faye.sh
#!/bin/bash
sudo gem install thin --no-ri --no-rdoc
sudo gem install faye --no-ri --no-rdoc
3) RAILS_ROOT/Procfile
faye: thin -R $RAILS_STACK_PATH/faye/config.ru start
4) RAILS_ROOT/faye/config.ru
require 'faye'
faye_server = Faye::RackAdapter.new(:mount => '/your_faye_mount', :timeout => 45)
Faye::WebSocket.load_adapter('thin')
faye_server.listen(<<PUT-YOUR-PORT-HERE>>)
Обратите внимание, что для части 4) настройки будут отличаться в зависимости от ваших требований, конечно.
Если вы выполните приведенную выше настройку, у вас будет фей, работающий рядом с вашим стеком, и он будет доступен как процесс в вашем стеке.