class DockerBuilder::Provisioner::Chef
Attributes
server[RW]
Public Class Methods
new(_settings)
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 21 def initialize(_settings) self.server = _settings end
Public Instance Methods
build_config()
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 56 def build_config res = {} attr = settings.properties['attributes'] res = attr #res = settings.all_attributes res end
copy_config_file()
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 28 def copy_config_file # config json save_config # copy to container DockerBuilder::Command.cmd %Q(docker cp #{filename_config} #{settings.container_name}:#{docker_filename_config}) end
docker_filename_config()
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 52 def docker_filename_config "/opt/bootstrap/config.json" end
docker_run_cmd(s)
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 85 def docker_run_cmd(s) DockerBuilder::Command.cmd %Q(docker exec #{settings.container_name} bash -c '#{s}') end
filename_config()
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 48 def filename_config File.join(Config.root_path, 'temp', "bootstrap-#{settings.name}.json") end
run_recipe_in_container(dir_base, recipe_name)
click to toggle source
run recipes
# File lib/docker_builder/provisioner/chef.rb, line 69 def run_recipe_in_container(dir_base, recipe_name) recipe_name ||= "server::bootstrap" # generate config copy_config_file # q = %Q(cd #{dir_base} && chef-client -z -j #{docker_filename_config} --override-runlist "recipe[#{recipe_name}]" ) # exec docker_run_cmd q end
save_config()
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 37 def save_config require 'json' filename = filename_config FileUtils.mkdir_p(File.dirname(filename)) File.open(filename,"w+") do |f| f.write(build_config.to_json) end true end
server=(v)
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 7 def server=(v) @server = v @server end
settings()
click to toggle source
# File lib/docker_builder/provisioner/chef.rb, line 16 def settings server end