Фэй настроен на производство

Я настроил 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:inrequire 'от /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:ininstance_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:ineval 'из /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:inparse_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:inapp 'от /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) настройки будут отличаться в зависимости от ваших требований, конечно.

Если вы выполните приведенную выше настройку, у вас будет фей, работающий рядом с вашим стеком, и он будет доступен как процесс в вашем стеке.

Другие вопросы по тегам