Module: Dory::DockerService
Instance Method Summary collapse
- #container_exists?(container_name = self.container_name) ⇒ Boolean
- #delete(container_name = self.container_name) ⇒ Object
- #has_docker_client? ⇒ Boolean
- #ps(all: false) ⇒ Object
- #running?(container_name = self.container_name) ⇒ Boolean
- #start ⇒ Object
- #stop(container_name = self.container_name) ⇒ Object
Instance Method Details
#container_exists?(container_name = self.container_name) ⇒ Boolean
23 24 25 |
# File 'lib/dory/docker_service.rb', line 23 def container_exists?(container_name = self.container_name) !!(self.ps(all: true) =~ /#{container_name}/) end |
#delete(container_name = self.container_name) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/dory/docker_service.rb', line 46 def delete(container_name = self.container_name) if self.container_exists? self.stop if self.running? Sh.run_command("docker rm #{container_name}") end !self.container_exists? end |
#has_docker_client? ⇒ Boolean
37 38 39 |
# File 'lib/dory/docker_service.rb', line 37 def has_docker_client? Sh.run_command('which docker').success? end |
#ps(all: false) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/dory/docker_service.rb', line 27 def ps(all: false) cmd = "docker ps#{all ? ' -a' : ''}" ret = Sh.run_command(cmd) if ret.success? return ret.stdout else raise RuntimeError.new("Failure running command '#{cmd}'") end end |
#running?(container_name = self.container_name) ⇒ Boolean
19 20 21 |
# File 'lib/dory/docker_service.rb', line 19 def running?(container_name = self.container_name) !!(self.ps =~ /#{container_name}/) end |
#start ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/dory/docker_service.rb', line 3 def start unless self.running? success = if self.container_exists? Sh.run_command("docker start #{self.container_name}") else Sh.run_command(self.run_cmd).success? end unless success raise RuntimeError.new( "Failed to run nginx proxy. Command #{self.run_cmd} failed" ) end end self.running? end |
#stop(container_name = self.container_name) ⇒ Object
41 42 43 44 |
# File 'lib/dory/docker_service.rb', line 41 def stop(container_name = self.container_name) Sh.run_command("docker kill #{container_name}") if self.running? !self.running? end |