Module: Capistrano::DSL
- Defined in:
- lib/capistrano/container.rb
Instance Method Summary collapse
- #ask_for_container_id ⇒ Object
- #container(name, config = {}) ⇒ Object
- #container_by_id(id) ⇒ Object
- #container_by_name(name) ⇒ Object
- #container_by_roles(roles) ⇒ Object
- #execute_local_or_remote(cmd) ⇒ Object
- #local_stage? ⇒ Boolean
- #on_container(container, &block) ⇒ Object
- #on_container_roles(container_roles, &block) ⇒ Object
- #run_container_command(command, container = nil) ⇒ Object
Instance Method Details
#ask_for_container_id ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/capistrano/container.rb', line 77 def ask_for_container_id() invoke 'container:all' ask(:container_id, "container id?") fetch(:container_id) end |
#container(name, config = {}) ⇒ Object
15 16 17 18 |
# File 'lib/capistrano/container.rb', line 15 def container(name, config = {}) # self gives access to capistrano dsl inside a container instance $container_manager.add(name, config) end |
#container_by_id(id) ⇒ Object
49 50 51 52 53 |
# File 'lib/capistrano/container.rb', line 49 def container_by_id(id) tmp = $container_manager.by_id(id) tmp.dsl = self tmp end |
#container_by_name(name) ⇒ Object
43 44 45 46 47 |
# File 'lib/capistrano/container.rb', line 43 def container_by_name(name) tmp = $container_manager.by_name(name) tmp.dsl = self tmp end |
#container_by_roles(roles) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/capistrano/container.rb', line 36 def container_by_roles(roles) $container_manager.by_roles(roles).map do |container| container.dsl = self container end end |
#execute_local_or_remote(cmd) ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'lib/capistrano/container.rb', line 89 def execute_local_or_remote(cmd) if local_stage? run_locally do execute cmd end else execute cmd end end |
#local_stage? ⇒ Boolean
85 86 87 |
# File 'lib/capistrano/container.rb', line 85 def local_stage? fetch(:local_stage_name).to_sym == fetch(:stage).to_sym end |
#on_container(container, &block) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/capistrano/container.rb', line 29 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) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/capistrano/container.rb', line 20 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) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/capistrano/container.rb', line 55 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 |