首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流浪汉伯克格berksfile_path

流浪汉伯克格berksfile_path
EN

Stack Overflow用户
提问于 2016-04-02 16:50:46
回答 1查看 599关注 0票数 0

我在根项目中有一个食谱文件夹,其中也有Vagrantfile。我只有几本食谱(初学者依赖于"apt",数据库依赖于mysql)。这些烹饪书是用巨无霸烹饪书生成的。

现在的问题是,当在Vagrantfile中设置config.berkshelf.berksfile_path时,我不知道是否将./ cookbooks /starter/ berks文件或./ comes /database/berks文件放在一起,因为这两种烹饪书都有层层依赖关系。

我尝试了多个选项,比如将这些菜谱移到烹饪书中--src并迭代其中的每个选项,并执行berks供应商.././ cookbooks ,但是没有工作,因为第二个供应商生成的烹饪书会覆盖上一个。

也尝试过每个菜谱依赖于./cookbook/-食谱/食谱,但流浪汉不认识他们。

这是我的流浪档案:

代码语言:javascript
复制
Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.hostname = "chef-DK"

  config.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--cpuexecutioncap", "67"]
    v.memory = 537
  end

  config.berkshelf.enabled = true
  config.berkshelf.berksfile_path = "./cookbooks/starter/Berksfile"
  config.vm.provision :chef_solo do |chef|
    chef.install = false  

    chef.run_list = [
      'recipe[starter::default]',
      'recipe[database::default]'
    ]
  end
end

project/
├── cookbooks/
│   ├── database
│   │         ├── recipes
│   │         ├── Berksfile
│   │         └── metadata.rb
│   └── starter
│             ├── recipes
│             ├── Berksfile
│             └── metadata.rb
└── Vagrantfile

============================================

starter/metadata.rb内容:

代码语言:javascript
复制
name             'starter'
maintainer       'YOUR_NAME'
maintainer_email 'YOUR_EMAIL'
license          'All rights reserved'
description      'Installs/Configures starter'
long_description 'Installs/Configures starter'
version          '0.1.0'

depends 'apt', '~> 3.0.0'

初学者/Berksfile的内容:

代码语言:javascript
复制
source "https://supermarket.chef.io"

metadata

cookbook 'apt', '~> 3.0.0'

============================================

数据库/元数据交换的内容:

代码语言:javascript
复制
name 'database'
maintainer 'The Authors'
maintainer_email 'you@example.com'
license 'all_rights'
description 'Installs/Configures database'
long_description 'Installs/Configures database'
version '0.1.0'

depends 'mysql', '~> 6.0'

数据库/Berksfile文件内容:

代码语言:javascript
复制
source "https://supermarket.chef.io"

metadata

cookbook 'mysql', '~> 6.1.3'
EN

回答 1

Stack Overflow用户

发布于 2016-04-03 05:17:35

首先,我想澄清一下,metadata指令读取菜谱metadata.rb (也就是说,您的_Berksfile_s中的cookbook条目似乎是多余的)。

在您的示例中,您可以在主项目/目录(Vagrantfile旁边)中创建一个Berksfile文件,其内容如下:

代码语言:javascript
复制
source 'https://supermarket.chef.io'

cookbook 'database', path: 'cookbooks/database'
cookbook 'starter', path: 'cookbooks/starter'

然后将其添加到Vagrantfile中。

代码语言:javascript
复制
config.berkshelf.berksfile_path = './Berksfile'

我认为你的问题是你在你的流浪文件中添加了一个metadata指令,这就是为什么你要得到“没有metadata.rb”错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36376070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档