Создание соединения с R внутри приложения ruby ​​on rails с помощью RinRuby.new (из гема RinRuby) на heroku - PullRequest
0 голосов
/ 26 января 2019

Я сделал приложение ruby ​​on rails, которое использует R (например, this ), которое работает локально.

Чтобы исправить сообщение об ошибке задачи rake, в gemfile я заменил gem 'rinruby' его более поздним форком, gem 'rootapp-rinruby', как описано в этом ответе.

Но когда я пытаюсь развернуть приложение на heroku, используя обычный сборочный пакет ruby, я получаю You must use Bundler 2 or greater with this lockfile., поэтому я удаляю сборочный пакет ruby ​​и вместо него добавляю https://github.com/bundler/heroku-buildpack-bundler2, как рекомендовано здесь

В этот момент приложение успешно разворачивается на героку.Однако, если я вхожу в консоль rails и запускаю что-то вроде

require 'rinruby'
# => true

RinRuby.new
#Traceback (most recent call last):
#        2: from (irb):3
#        1: from (irb):3:in `new'
#Errno::ENOENT (No such file or directory - R)

Это должно создать соединение с R, как это происходит локально.Вместо этого происходит ошибка, и я не могу найти способ обойти эту ошибку (я полагаю, что приложение rails не 'находит' R?)

В попытке решить проблему я попытался добавить используемый сборочный пакет R здесь (но это устарело), ​​поэтому я вместо этого добавил https://github.com/virtualstaticvoid/heroku-buildpack-r.git#heroku-16, который используется в в этом примере.

Теперь, когда я развертываю с двумя buildpack-пакетами, я получаю:

    -----> Ruby app detected
    -----> Compiling Ruby/Rails
    -----> Using Ruby version: ruby-2.5.1
    -----> Installing dependencies using bundler 2.0.1
           Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
           The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
           Using rake 12.3.2
           Using concurrent-ruby 1.1.4
           Using i18n 1.5.3

etc etc
           Using turbolinks-source 5.2.0
           Using turbolinks 5.2.0
           Using uglifier 4.1.20
           Bundle complete! 19 Gemfile dependencies, 62 gems now installed.
           Gems in the groups development and test were not installed.
           Bundled gems are installed into `./vendor/bundle`
           Bundle completed (0.42s)
           Cleaning up the bundler cache.
    -----> Installing node-v8.10.0-linux-x64
           Detected manifest file, assuming assets were compiled locally
    -----> Detecting rails configuration
    -----> Detecting rake tasks
    ###### WARNING:
           You set your `config.active_storage.service` to :local in production.
           If you are uploading files to this app, they will not persist after the app
           is restarted, on one-off dynos, or if the app has multiple dynos.
           Heroku applications have an ephemeral file system. To
           persist uploaded files, please use a service such as S3 and update your Rails
           configuration.

           For more information can be found in this article:
             https://devcenter.heroku.com/articles/active-storage-on-heroku

    ###### WARNING:
           We detected that some binary dependencies required to
           use all the preview features of Active Storage are not
           present on this system.

           For more information please see:
             https://devcenter.heroku.com/articles/active-storage-on-heroku

    ###### WARNING:
           No Procfile detected, using the default web server.
           We recommend explicitly declaring how to boot your server process via a Procfile.
           https://devcenter.heroku.com/articles/ruby-default-web-server
    -----> App not compatible with buildpack: https://github.com/virtualstaticvoid/heroku-buildpack-r.git#heroku-16
           More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
     !     Push failed

Много проб и ошибок дошло до этого, но я немного застрял в идеях о том, что попробоватьдалее

Для справки я использую ruby ​​2.5.1 и rails 5.2.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...