Class: Indocker::ContainerDirectivesRunner
- Inherits:
-
Object
- Object
- Indocker::ContainerDirectivesRunner
- Includes:
- SmartIoC::Iocify
- Defined in:
- lib/indocker/directives/container_directives_runner.rb
Instance Method Summary collapse
- #run(directive) ⇒ Object
- #run_all(directives) ⇒ Object
- #run_network(directive) ⇒ Object
- #run_ready(directive) ⇒ Object
Instance Method Details
#run(directive) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/indocker/directives/container_directives_runner.rb', line 15 def run(directive) case directive when Indocker::ContainerDirectives::Network run_network(directive) when Indocker::ContainerDirectives::Ready run_ready(directive) else # do nothing end end |
#run_all(directives) ⇒ Object
11 12 13 |
# File 'lib/indocker/directives/container_directives_runner.rb', line 11 def run_all(directives) directives.each {|c| run(c)} end |
#run_network(directive) ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/indocker/directives/container_directives_runner.rb', line 26 def run_network(directive) if !docker_api.network_exists?(directive.network_name) docker_api.create_network(directive.network_name) end docker_api.add_container_to_network( container_name: directive.container_name, network_name: directive.network_name ) end |
#run_ready(directive) ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/indocker/directives/container_directives_runner.rb', line 37 def run_ready(directive) Timeout::timeout(directive.timeout) do while (!directive.ready_block.call) sleep directive.sleep end end rescue Timeout::Error raise Indocker::Errors::ContainerTimeoutError end |