class Rummager::ClickImage
Template to generate tasks for Docker Images
Attributes
add_files[RW]
dep_image[RW]
dep_other[RW]
image_args[RW]
image_name[RW]
noclean[RW]
repo_base[RW]
source[RW]
Public Class Methods
new(image_name,args={}) { |self| ... }
click to toggle source
# File lib/rummager/images.rb, line 164 def initialize(image_name,args={}) @image_name = image_name @repo_base = args.delete(:repo_base) || Rummager.repo_base @source = args.delete(:source) @add_files = args.delete(:add_files) if @source.nil? @source = Dir.new("./#{@image_name}/") puts "no direct source, use #{@source.path}" if Rake.verbose == true end @dep_image = args.delete(:dep_image) @dep_other = args.delete(:dep_other) @noclean = args.delete(:noclean) @image_args = args @image_args[:repo] = "#{@repo_base}/#{image_name}" puts "repo for #{@image_name} will be #{@image_args[:repo]}" if Rake.verbose == true @image_args[:tag] ||= 'latest' yield self if block_given? define end
Public Instance Methods
define()
click to toggle source
# File lib/rummager/images.rb, line 184 def define namespace "images" do namespace @image_name do rmitask = Rummager::ImageRMITask.define_task :rmi rmitask.repo = "#{@image_args[:repo]}" rmitask.tag = 'latest' buildtask = Rummager::ImageBuildTask.define_task :build buildtask.source = @source buildtask.repo = @image_args[:repo] buildtask.tag = buildtask.fingerprint buildtask.add_files = @add_files end # namespace end # namespace if @dep_image puts "'#{@image_name}' is dependent on '#{@dep_image}'" if Rake.verbose == true # forward prereq for build Rake::Task[:"images:#{@image_name}:build"].enhance( [ :"images:#{@dep_image}:build" ] ) # reverse prereq on parent image for delete Rake::Task[:"images:#{@dep_image}:rmi"].enhance(["images:#{@image_name}:rmi"]) end if @dep_other Rake.Task[:"images:#{@image_name}"].enhance( @dep_other ) end if @noclean Rake::Task[:"images:clobber"].enhance( [ :"images:#{@image_name}:rmi"] ) else Rake::Task[:"images:clean"].enhance( [ :"images:#{@image_name}:rmi"] ) end end