class DockerCompose::Interactive::Instance

Public Class Methods

new(file='', project=nil) click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 7
def initialize(file='', project=nil)
  @file    = file
  @project = project
end

Public Instance Methods

build(args='') click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 80
def build(args='')
  execute_compose_command("build #{args}")
end
config() click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 12
def config
  return @config if @config
  raw_config = execute_compose_command('config', true)
  @config = YAML.load(raw_config)
end
count_container() click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 44
def count_container
  count = execute_compose_command('ps -q | wc -l', capture = true)
  count.to_i
rescue
  0
end
down(args='') click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 64
def down(args='')
  execute_compose_command("down #{args}")
end
execute(cmd, capture = false) click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 18
def execute(cmd, capture = false)
  execute_compose_command(cmd, capture)
end
execute_compose_command(cmd, capture = false) click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 22
def execute_compose_command(cmd, capture = false)
  project = @project.empty? ? "" : "-p #{@project}"
  file    = @file.empty?    ? "" : "--file #{@file}"
  cmd     = "#{file} #{project} #{cmd}"

  if capture
    return DockerCompose::Interactive.capture_local_or_remote cmd
  else
    DockerCompose::Interactive.execute_local_or_remote_interactive cmd
  end
end
isup?() click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 38
def isup?
  count_container > 0
rescue
  false
end
pull(args='') click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 84
def pull(args='')
  execute_compose_command("pull #{args}")
end
restart(args='') click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 76
def restart(args='')
  execute_compose_command("restart #{args}")
end
service(name) click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 34
def service(name)
  Service.new(self, name, config()['services'][name])
end
start(args='') click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 72
def start(args='')
  execute_compose_command("start #{args}")
end
start_or_restart() click to toggle source

starts or restarts a docker compose

# File lib/capistrano/dockercompose/interactive/instance.rb, line 52
def start_or_restart
  if isup?
    restart()
  else
    up()
  end
end
stop(args='') click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 60
def stop(args='')
  execute_compose_command("stop #{args}")
end
up(args='-d') click to toggle source
# File lib/capistrano/dockercompose/interactive/instance.rb, line 68
def up(args='-d')
  execute_compose_command("up #{args}")
end