task :info => ‘info:default’
namespace :info do
task :default do puts "Environment: #{fetch(:environment)}" puts "Project: #{fetch(:project)}" puts "Image: #{fetch(:image)}" puts "Tag: #{fetch(:tag)}" puts "Port Bindings: #{fetch(:port_bindings).inspect}" puts "Mount Point: #{fetch(:binds).inspect}" puts "ENV: #{fetch(:env_vars).inspect}" puts "Hosts: #{fetch(:hosts).inspect}" end task :run_command do example_host = fetch(:hosts).first env_args = "" fetch(:env_vars, {}).each_pair do |name,value| env_args << "-e #{name}='#{value}' " end volume_args = fetch(:binds, []).map {|bind| "-v #{bind}"}.join(" ") puts "docker -H=tcp://#{example_host} run #{env_args} #{volume_args} #{fetch(:image)}:#{fetch(:tag)}" end
end