Openshift не может найти драгоценные камни

Я пытаюсь развернуть тривиальное приложение на устройстве, содержащем пакеты "Ruby 1.9" и "PostgreSQL 9.2". Похоже, развертывание прошло успешно. Когда я указываю свой браузер на сервер, я получаю Passenger "Приложение Ruby (Rack) не может быть запущено" с сообщением об ошибке "Не удалось найти rake-0.9.6 ни в одном из источников (Bundler::GemNotFound)". Ssh и "установка gem" не помогли (драгоценный камень установлен, но не там, где Пассажир может его найти - я не могу переместить его туда, где его хочет Пассажир, потому что у меня нет привилегий root). В соответствии с привилегиями Root для установки гемов ruby ​​в Openshift, этот гем должен быть указан в моем Gemfile.lock. Я сделал это, и это не помогло. Вот мой config.ru:

  require 'rubygems' 
  require 'bundler'
  $LOAD_PATH << './lib'
  ENV['DATABASE_URL'] = "#{ENV['OPENSHIFT_POSTGRESQL_DB_URL']}/phone_book"
  Bundler.require
  require 'phone_book/controllers'
  Ramaze.start(:root => Ramaze.options.roots, :started => true)
  run Ramaze

Вот мой Bundle.lock:

  GEM
    remote: https://anybody:password@some.gem.server.com/
    remote: https://rubygems.org/
    specs:
      daemons (1.1.9)
      eventmachine (1.0.3)
      haml (4.0.4)
        tilt
      haml-contrib (1.0.0.1)
        haml (>= 3.2.0.alpha.13)
      innate (2012.03)
        rack (~> 1.4.1)
      mysql2 (0.3.15)
      pg (0.17.1)
      phone_book (0.0.0)
        haml (= 4.0.4)
        haml-contrib (~> 1.0.0)
        innate (= 2012.03)
        mysql2 (~> 0.3)
        pg (~> 0.17)
        rack (= 1.4.5)
        rake (= 0.9.6)
        ramaze (= 2012.04.14)
        sass (~> 3.3)
        sequel (~> 4.8)
        sqlite3 (~> 1.3.9)
        thin (~> 1.2)
      rack (1.4.5)
      rake (0.9.6)
      ramaze (2012.04.14)
        innate (>= 2012.03)
      sass (3.3.0)
        rake
      sequel (4.8.0)
      sqlite3 (1.3.9)
      thin (1.6.2)
        daemons (>= 1.0.9)
        eventmachine (>= 1.0.0)
        rack (>= 1.0.0)
      tilt (2.0.0)

  PLATFORMS
    ruby

  DEPENDENCIES
    phone_book (~> 0.0)

Этот пример отлично работает, когда я запускаю его на своем ноутбуке через "стойку". Я также могу развернуть это в Dokku. Код явно не ссылается на Thin (это то, что я хотел использовать, но я не против Пассажира).

Я также попытался использовать вместо этого "Advanced Ruby картридж" и указать Thin ("rhc env set OPENSHIFT_RUBY_SERVER=thin -a app_name"). На этот раз отправка результатов в "CLIENT_ERROR: Не удалось выполнить: 'control build'" с бесполезным предложением "--trace" (что не принято "gem push"). ssh Выполнение "gear postreceive --trace", кажется, зависает (на OS X), пока я не нажму клавишу, а затем я получу трассировку стека на стороне клиента. Когда я перезапускаю приложение из консоли, я получаю "Невозможно завершить запрошенную операцию" и "[31mbundler: команда не найдена: тонкий запуск -C ...". Странно, кажется, что Thin предназначен для включения в этот картридж. В любом случае, я указал это в Gemfile.lock (см. Выше), поэтому еще раз кажется, что драгоценные камни, которые я указываю в Gemfile.lock, не видны.

0 ответов

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