【问题标题】:Berkshelf does not download dependencies for cookbook in gitBerkshelf 不会在 git 中下载食谱的依赖项
【发布时间】:2015-03-13 04:18:18
【问题描述】:

我有三本食谱“A”、“B”和“C”。每本食谱都存在于自己的存储库中。

食谱“B”依赖于“A”,我有食谱“A”Berksfile 的条目,源设置为 repo url

食谱“C”依赖于“B”,我有食谱“B”Berksfile 的条目,源设置为 repo url

但是,在食谱“C”的 Berksfile 上运行 berks vendor 时,我发现 berkshelf 没有下载食谱“A”

我在这里做错了什么

【问题讨论】:

  • Berkshelf 仅使用本地 Berksfile。食谱“C”的 Berksfile 应该包含食谱“A”和“B”的 GIT URL。这样它就会知道从哪里获取与它在元数据文件中发现的依赖声明相关的说明书代码

标签: chef-infra berkshelf


【解决方案1】:

您的说明书的依赖项应列在说明书的metadata.rb 文件中。

在您的用例中,如果食谱 A 依赖于食谱 B,您的食谱 A 的 metadata.rb 文件中应该有以下行。

depends 'B'

现在,来到您的 Berksfile,来源是 supermarket 上列出的社区食谱,除非您有自己的超市实例站在某个地方。对于超市以外的食谱,请使用 Berksfile 中的“食谱”列出您的依赖关系,如下例所示:

source 'https://supermarket.getchef.com'

metadata

cookbook 'B', git:'http://<your_domain>/project/B', tag: 'some_tag'

Berkshelf 根据您的说明书metadata.rb 中列出的依赖关系处理说明书依赖关系。

【讨论】:

    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 2016-05-16
    相关资源
    最近更新 更多