class Docktor::DockerClient
Constants
- CONTAINER_NAME_PREFIX
Public Instance Methods
container_exists?(container)
click to toggle source
# File lib/docktor/docker_client.rb, line 5 def container_exists?(container) `docker ps --all --quiet --filter name=#{container_name(container.name)}`.present? end
run(container)
click to toggle source
# File lib/docktor/docker_client.rb, line 9 def run(container) `docker run --name #{container_name(container.name)} #{parse_options(container.options)} #{container.image} #{container.command}` end
start(container)
click to toggle source
# File lib/docktor/docker_client.rb, line 13 def start(container) `docker start #{container_name(container.name)}` end
Private Instance Methods
container_name(name)
click to toggle source
# File lib/docktor/docker_client.rb, line 33 def container_name(name) CONTAINER_NAME_PREFIX + name end
parse_options(options)
click to toggle source
# File lib/docktor/docker_client.rb, line 19 def parse_options(options) options.map do |name, value| case name when :detach then "--detach=#{value}" when :volumes then "--volume #{value.join(" ")}" when :ports then "--publish #{value.join(" ")}" when :links value.map { |v| "--link #{container_name(v)}" }.join(" ") when :environment "--env #{value.map { |k, v| %(#{k}="#{v}") }.join(" ")}" end end.join(" ").strip end