module Dockerhelper::Tasks
Public Class Methods
init(config)
click to toggle source
# File lib/dockerhelper/rake.rb, line 7 def self.init(config) build_tasks = [:pull, :prebuild, :docker_build, :repo_tag, :push] build_tasks << :'kube:gen_rc' if config.kubernetes? namespace :docker do namespace(config.environment) do desc 'Print config info' task :info do keys = %i(app_name git_root git_branch git_repo_url docker_repo docker_image docker_tag rev_length dockerfile docker_repo_tag_prefix environment kube_rc_template kube_rc_dest_dir kube_rc_version env_vars prebuild_command docker_repo_tag) key_values = Hash[keys.map { |k| [k, config.send(k)] }] max_key_length = keys.map(&:size).sort[-1] key_values.each do |key, value| puts sprintf("%#{max_key_length}s %s\n", key, value) end end desc 'Prepare to build docker image' task :prebuild do Command.new(config.prebuild_command, label: 'prebuild').run if config.prebuild? end desc 'Build docker image' task :docker_build do config.docker.build(config.dockerfile, tag: config.docker_image) end desc 'Pull git repo' task :pull do config.git.clone(config.git_repo_url, config.git_branch) end desc 'Tag docker image' task :repo_tag do tag_full = "#{config.docker_repo}:#{config.docker_repo_tag}" config.docker.tag(config.docker_image, tag_full) end desc 'Push docker images to Docker Hub' task :push do config.docker.push(config.docker_repo, tag: config.docker_repo_tag) end desc 'Git clone, build image, and push image to Docker Hub' task :build => build_tasks if config.kubernetes? namespace :kube do desc 'Generate replication controller for the current build' task :gen_rc do config.kubernetes.write_replication_controller puts "Created replication-controller: #{config.kubernetes.replication_controller_filename}" end desc 'Get current replication controller version' task :current_rc do puts config.kubernetes.current_rc end desc 'Run replication controller rolling-update' task :rolling_update do config.kubernetes.rolling_update end desc 'Create replication controller' task :create_rc => [:gen_rc] do config.kubernetes.replication_controller_create end desc 'Delete replication controller (USE WITH CAUTION)' task :delete_rc do # TODO add "are you sure?" prompt config.kubernetes.replication_controller_delete end end end end end end