class Indocker::Containers::Container

Attributes

after_deploy_proc[R]
after_start_proc[R]
before_start_proc[R]
build_args[R]
dependent_containers[R]
name[R]
networks[R]
parent_containers[R]
redeploy_schedule[R]
servers[R]
soft_dependent_containers[R]
start_command[R]
start_options[R]
volumes[R]

Public Class Methods

new(name) click to toggle source
# File lib/indocker/containers/container.rb, line 7
def initialize(name)
  @name = name
  @daemonize = true
  @parent_containers = []
  @dependent_containers = []
  @soft_dependent_containers = []
  @volumes = []
  @networks = []
  @servers = []
  @start_options = {}
  @build_args = {}
  @redeploy_schedule = nil
end

Public Instance Methods

add_dependent_container(container) click to toggle source
# File lib/indocker/containers/container.rb, line 86
def add_dependent_container(container)
  container.add_parent_container(self)
  @dependent_containers.push(container) if !@dependent_containers.include?(container)
end
add_parent_container(container) click to toggle source
# File lib/indocker/containers/container.rb, line 82
def add_parent_container(container)
  @parent_containers.push(container) if !@parent_containers.include?(container)
end
add_soft_dependent_container(container) click to toggle source
# File lib/indocker/containers/container.rb, line 91
def add_soft_dependent_container(container)
  @soft_dependent_containers.push(container) if !@soft_dependent_containers.include?(container)
end
daemonize(flag) click to toggle source
# File lib/indocker/containers/container.rb, line 69
def daemonize(flag)
  @daemonize = flag
  @attach = false
end
get_start_option(name, default: nil) click to toggle source
# File lib/indocker/containers/container.rb, line 99
def get_start_option(name, default: nil)
  @start_options.fetch(name) { default }
end
image() click to toggle source
# File lib/indocker/containers/container.rb, line 61
def image
  @image || (raise ArgumentError.new("image not defined for container :#{@name}"))
end
is_daemonized?() click to toggle source
# File lib/indocker/containers/container.rb, line 74
def is_daemonized?
  @daemonize
end
set_after_deploy_proc(proc) click to toggle source
# File lib/indocker/containers/container.rb, line 33
def set_after_deploy_proc(proc)
  @after_deploy_proc = proc
end
set_after_start_proc(proc) click to toggle source
# File lib/indocker/containers/container.rb, line 29
def set_after_start_proc(proc)
  @after_start_proc = proc
end
set_attached() click to toggle source
# File lib/indocker/containers/container.rb, line 49
def set_attached
  @daemonize = false
end
set_before_start_proc(proc) click to toggle source
# File lib/indocker/containers/container.rb, line 25
def set_before_start_proc(proc)
  @before_start_proc = proc
end
set_build_args(opts) click to toggle source
# File lib/indocker/containers/container.rb, line 21
def set_build_args(opts)
  @build_args = opts
end
set_image(image) click to toggle source
# File lib/indocker/containers/container.rb, line 57
def set_image(image)
  @image = image
end
set_networks(networks) click to toggle source
# File lib/indocker/containers/container.rb, line 107
def set_networks(networks)
  @networks = networks

  networks.each do |network|
    network.add_container(self)
  end
end
set_redeploy_schedule(schedule) click to toggle source
# File lib/indocker/containers/container.rb, line 115
def set_redeploy_schedule(schedule)
  @redeploy_schedule = schedule
end
set_scale(count) click to toggle source
# File lib/indocker/containers/container.rb, line 45
def set_scale(count)
  @start_options[:scale] = count
end
set_servers(servers) click to toggle source
# File lib/indocker/containers/container.rb, line 78
def set_servers(servers)
  @servers = servers
end
set_start_command(name) click to toggle source
# File lib/indocker/containers/container.rb, line 37
def set_start_command(name)
  @start_command = name
end
set_start_options(opts) click to toggle source
# File lib/indocker/containers/container.rb, line 95
def set_start_options(opts)
  @start_options = opts
end
set_tags(tag_list) click to toggle source
# File lib/indocker/containers/container.rb, line 41
def set_tags(tag_list)
  @tags = tag_list
end
set_volumes(volumes) click to toggle source
# File lib/indocker/containers/container.rb, line 103
def set_volumes(volumes)
  @volumes = volumes
end
tags() click to toggle source
# File lib/indocker/containers/container.rb, line 53
def tags
  @tags || (raise ArgumentError.new("tags not defined for container :#{@name}"))
end