2016-01-13 46 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 /树/主/红宝石#如果 - 你 - 不要 - 想对包的代码 - 使用 - 泊坞窗 –