class Sidedock::Container

Attributes

id[RW]
ports[RW]

Public Class Methods

create(image_name_or_id, options) click to toggle source
# File lib/sidedock/container.rb, line 10
def self.create(image_name_or_id, options)
  raise "No image name given" unless image_name_or_id.present?
  id = machine.execute "create -P #{image_name_or_id}"
  new id, **options
end
new(id, port_mapping: {}, **options) click to toggle source
# File lib/sidedock/container.rb, line 5
def initialize(id, port_mapping: {}, **options)
  @id = id
  @port_mapping = port_mapping
end
using_image(image) click to toggle source
# File lib/sidedock/container.rb, line 46
def self.using_image(image)
  ps_output = machine.execute "ps -a -q --filter ancestor=#{image.id}"

  ps_output.each_line.map do |id|
    new id
  end
end

Public Instance Methods

bash(command) click to toggle source
# File lib/sidedock/container.rb, line 38
def bash(command)
  machine.execute "exec -t #{@id} bash -c '#{command}'"
end
ip() click to toggle source
# File lib/sidedock/container.rb, line 42
def ip
  machine.ip
end
remove() click to toggle source
# File lib/sidedock/container.rb, line 26
def remove
  machine.execute "rm -f #{@id}"
end
running?() click to toggle source
# File lib/sidedock/container.rb, line 34
def running?
  machine.execute('ps -q --no-trunc').include? @id
end
start() click to toggle source
# File lib/sidedock/container.rb, line 16
def start
  raise "already started" if running?
  machine.execute "start #{@id}"
end
stop() click to toggle source
# File lib/sidedock/container.rb, line 21
def stop
  raise "not running" unless running?
  machine.execute "stop #{@id}"
end