无法使用带有Chef 11.8.0的application_ruby cookbook,找不到bundle_options的资源

时间:2013-11-14 19:52:08

标签: ruby bundler chef chef-recipe

我一直在尝试设置一个主厨配方,使用RVM安装ruby,然后使用application_ruby cookbook配置应用程序,但是我一直遇到错误

NameError: Cannot find a resource for bundle_options on ubuntu version 12.04

我正在使用以下代码

application "application setup" do
  owner "ubuntu"
  group "ubuntu"
  repository "https://github.com/me/myapplication.git" // Real address removed
  path rails_app_path
  revision "master"

  rails do
    bundler true
    precompile_assets true
    bundler_deployment true
  end
end

我注意到最近添加了bundle_options,https://github.com/opscode-cookbooks/application_ruby/commit/e7719170a661a957796e8e5d58ba8f4ecd937487但是我无法追踪是否会导致此问题。我已经包括了

depends          "application"
depends          "application_ruby"

在我的metadata.rb中并​​确保我的所有依赖项都已安装,因此我不确定此时我做错了什么。

2 个答案:

答案 0 :(得分:0)

根据文档 bundle_options 是rails资源的属性,而不是资源本身。 使用它的唯一正确方法是 INSIDE rails ”块,因此您收到了消息,因为您将其用作:

  • 应用程序资源的属性(但在“rails”块之外)
  • 独立资源(在任何资源之外)。

当引用不存在的资源时,正在显示您提到的消息。例如如果您曾尝试在系统上执行以下代码:

 nonexistent_resource "failure gonna happen" do
     some_attribute "whatever_value"
 end

你会得到一条消息

  

NameError:在Ubuntu 12.04版上找不到 nonexistent_resource 的资源

答案 1 :(得分:0)

我今天也遇到了这个问题。看来问题是提交e771917忘了为bundle_option添加必要的getter。有人提交PR修复它(https://github.com/poise/application_ruby/pull/44),但尚未合并。我可以确认,当我在本地进行更改时,此错误消失了。 PR中的分叉分支位于https://github.com/mauriciosilva/application_ruby/tree/bundle_options_fix