2016-01-13 29 views
2

我想使用我上傳的Gemfile中指定的gems。然而,我不斷收到如何在iron.io worker中使用Gemfile

/usr/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- capybara (LoadError) from /usr/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' from app.rb:3:in `<main>' 

似乎代碼找不到所需的寶石。這是我的.worker文件:

runtime "ruby" 
stack "ruby-2.1" 

exec "app.rb" 

gemfile "Gemfile" 

full_remote_build true 

Gemfile

zip -r my_work.zip . ; iron worker upload --zip my_work.zip --name my_work iron/ruby ruby app.rb ; iron worker queue --wait my_work 

在此先感謝:

source "https://rubygems.org" 

gem "capybara" 
gem "capybara-webkit" 

我使用此命令上傳我的工作。

回答

2

這裏有幾件事情:

1)您使用full_remote_build用.worker文件,但隨後上傳拉鍊。這兩件事情不一起,它是一個或另一個。

2)請確保您正在銷售這些寶石,以便在您將它們拉鍊時包含它們。致供應商:docker run --rm -v "$PWD":/worker -w /worker iron/ruby:dev bundle install --standalone --clean。然後在腳本的頂部添加:require_relative 'bundle/bundler/setup'

看到這裏的文檔瞭解更多信息:https://github.com/iron-io/dockerworker/tree/master/ruby

+0

所以,基本上我需要使用泊塢窗做到這一點?因爲鐵紅寶石碼頭工人正在使用高山Linux作爲圖像,並不是直接安裝qt webkit。或者,也許我應該使用Ubuntu的圖像。你怎麼看? – RubyCat

+0

我明白了。您可以嘗試使用舊圖片構建它:https://hub.docker.com/r/iron/images/tags/,但您可能不需要.worker文件。按照步驟1和2在dockerworker鏈接,但使用iron/images:ruby-2.1而不是iron/ruby​​:dev,然後繼續在這些步驟上傳您的zip:https://github.com/iron-io/dockerworker /樹/主/紅寶石#如果 - 你 - 不要 - 想對包的代碼 - 使用 - 泊塢窗 –