Sha256: 45605b47ccf57df726575dd5233fd5921aa24e7cda69ca493ccaf65c07c515d2
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
require 'docker' require_relative '../tasklib' module RakeDocker module Tasks class Build < TaskLib parameter :name, :default => :build parameter :argument_names, :default => [] parameter :image_name, :required => true parameter :repository_name, :required => true parameter :credentials parameter :build_args parameter :work_directory, :required => true parameter :prepare_task, :default => :prepare def process_arguments(args) self.name = args[0] if args[0] end def define prerequisites = prepare_task ? [scoped_task_name(prepare_task)] : [] desc "Build #{image_name} image" task name, argument_names => prerequisites do |_, args| params = OpenStruct.new( image_name: image_name, repository_name: repository_name, credentials: credentials, work_directory: work_directory ) derived_credentials = credentials.respond_to?(:call) ? credentials.call(*[args, params].slice(0, credentials.arity)) : credentials Docker.authenticate!(derived_credentials) if derived_credentials options = {t: repository_name} options = options.merge(buildargs: build_args) if build_args Docker::Image.build_from_dir( File.join(work_directory, image_name), options) do |chunk| $stdout.puts chunk end end end private def scoped_task_name(task_name) Rake.application.current_scope.path_with_task_name(task_name) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rake_docker-0.15.1.pre1 | lib/rake_docker/tasks/build.rb |