【问题标题】:Chef docker query厨师码头查询
【发布时间】:2020-06-18 04:02:45
【问题描述】:

以下是我的 docker 食谱。我已经使用 chef 安装了 docker,并且它安装正确,但是当我试图通过 chef 提取图像时它不起作用:

# default.rb

package 'docker' do
  action :install
end

service 'default' do
  action [ :enable, :start ]
end

docker_image 'nginx' do
  tag 'latest'
  action :pull
end

在本地运行 Chef 客户端并进行测试时出现以下错误:

NoMethodError 食谱的未定义方法“docker_image”:docker,recipe:默认:Chef::Recipe

由于我是新来的厨师,所以在上述问题上需要帮助

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    docker_image资源在chef core中没有定义,所以你必须提供定义的来源。此资源在docker 食谱中定义,可在supermarket 中找到。因此,您必须依赖该食谱才能使用该资源。在食谱的metadata.rb 中添加一行:

    # metadata.rb
    
    depends 'docker', '~> 6.0'
    

    然后您的依赖管理引擎(Berkshelf、Policyfile)将能够找到并下载说明书。

    【讨论】:

    • 在default.rb文件中以同样的方式运行docker容器怎么样?有什么要求吗?
    • 对 metadata.rb 进行更改后出现以下错误:[2020-06-18T10:27:28+00:00] 错误:无法将 /root/chef-repo/cookbooks/docker 读入Chef 对象:Cookbook 在 cookbook docker 中依赖于自身,请删除这个不必要的自依赖 [2020-06-18T10:27:28+00:00] 错误:/opt/chefdk/embedded/lib/ruby/gems/2.6 .0/gems/chef-15.11.8/lib/chef/cookbook/metadata.rb:283:in depends' /root/chef-repo/cookbooks/docker/metadata.rb:21:in from_file'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多