module Capistrano::DSL
Public Instance Methods
ask_for_container_id()
click to toggle source
# File lib/capistrano/container.rb, line 72 def ask_for_container_id() invoke 'container:all' ask(:container_id, "container id?") fetch(:container_id) end
container(name, config = {})
click to toggle source
# File lib/capistrano/container.rb, line 10 def container(name, config = {}) # self gives access to capistrano dsl inside a container instance $container_manager.add(name, config) end
container_by_id(id)
click to toggle source
# File lib/capistrano/container.rb, line 44 def container_by_id(id) tmp = $container_manager.by_id(id) tmp.dsl = self tmp end
container_by_name(name)
click to toggle source
# File lib/capistrano/container.rb, line 38 def container_by_name(name) tmp = $container_manager.by_name(name) tmp.dsl = self tmp end
container_by_roles(roles)
click to toggle source
# File lib/capistrano/container.rb, line 31 def container_by_roles(roles) $container_manager.by_roles(roles).map do |container| container.dsl = self container end end
execute_local_or_remote(cmd)
click to toggle source
# File lib/capistrano/container.rb, line 84 def execute_local_or_remote(cmd) if local_stage? run_locally do execute cmd end else execute cmd end end
local_stage?()
click to toggle source
# File lib/capistrano/container.rb, line 80 def local_stage? fetch(:local_stage_name).to_sym == fetch(:stage).to_sym end
on_container(container, &block)
click to toggle source
# File lib/capistrano/container.rb, line 24 def on_container(container, &block) on roles(container.container_role) do |host| container.dsl = self block.call container, host end end
on_container_roles(container_roles, &block)
click to toggle source
# File lib/capistrano/container.rb, line 15 def on_container_roles(container_roles, &block) container_by_roles(container_roles).each do |container| on roles(container.container_role) do |host| container.dsl = self block.call container, host end end end
run_container_command(command, container = nil)
click to toggle source
# File lib/capistrano/container.rb, line 50 def run_container_command(command, container = nil) if command.include?('{container_id}') if container.nil? container_id = ask_for_container_id container = container_by_id container_id end command.gsub!('{container_id}', container.container_id) on roles(container.container_role) do |host| container.dsl = self puts capture("docker #{command}") end else on roles(:container_host) do puts capture("docker #{command}") end end end