class DockerBuilder::Builder::Packer
Attributes
server[RW]
Public Class Methods
new(_settings)
click to toggle source
# File lib/docker_builder/builder/packer.rb, line 21 def initialize(_settings) self.server = _settings end
Public Instance Methods
build()
click to toggle source
# File lib/docker_builder/builder/packer.rb, line 26 def build # config json save_packer_config DockerBuilder::Command.cmd %Q(packer build #{filename_config} ) end
build_packer_config()
click to toggle source
# File lib/docker_builder/builder/packer.rb, line 50 def build_packer_config res = {} res['variables'] = {} res['builders'] = [] bi = settings.properties['build']['base_image'] base_image_name = "#{bi['name']}:#{bi['tag']}" builder1 = { pull: false, type: "docker", image: base_image_name, commit: true } # changes entrypoint = settings.properties['build']['entrypoint'] if entrypoint builder1['changes'] ||= [] builder1['changes'] << "ENTRYPOINT #{entrypoint}" end res['builders'] << builder1 # recipe_name = settings['build']['packer']['recipe_name'] || 'build' cookbook_paths = settings['build']['packer']['cookbook_paths'] || [] cookbook_paths << settings.dir_cookbooks res["provisioners"] = [ { type: "chef-solo", prevent_sudo: true, cookbook_paths: cookbook_paths, json: settings.properties['attributes'], run_list: ["recipe[#{settings.name}::#{recipe_name}]"] }, ] # tag image res["post-processors"] = [ { repository: "#{settings.image_name}", type: "docker-tag" } ] res end
filename_config()
click to toggle source
# File lib/docker_builder/builder/packer.rb, line 46 def filename_config File.join(Config.root_path, 'temp', "packer-#{settings.name}.json") end
save_packer_config()
click to toggle source
helpers
# File lib/docker_builder/builder/packer.rb, line 35 def save_packer_config require 'json' filename = filename_config FileUtils.mkdir_p(File.dirname(filename)) File.open(filename,"w+") do |f| f.write(build_packer_config.to_json) end true end
server=(v)
click to toggle source
# File lib/docker_builder/builder/packer.rb, line 7 def server=(v) @server = v @server end
settings()
click to toggle source
# File lib/docker_builder/builder/packer.rb, line 16 def settings server end