class Spud::TaskRunners::DockerCompose::Task

Attributes

name[R]

Public Class Methods

new(driver, name, service) click to toggle source
# File lib/spud/task_runners/docker-compose/task.rb, line 33
def initialize(driver, name, service)
  @driver = driver
  @name = name
  @service = service
end
tasks(driver) click to toggle source
# File lib/spud/task_runners/docker-compose/task.rb, line 18
def self.tasks(driver)
  return [] unless File.exist?('docker-compose.yml')

  if `command -v docker-compose`.empty?
    puts 'docker-compose.yml detected, but no installation of `docker-compose` exists. Skipping docker-compose...'
    return []
  end

  source = File.read('docker-compose.yml')
  contents = YAML.load(source)
  services = contents['services']
  services.map { |name, service| new(driver, name, service) }
end

Public Instance Methods

details() click to toggle source
# File lib/spud/task_runners/docker-compose/task.rb, line 50
def details
  YAML.dump(@name => @service)
end
invoke(ordered, named) click to toggle source
# File lib/spud/task_runners/docker-compose/task.rb, line 40
def invoke(ordered, named)
  system("docker-compose up #{@name} #{ordered.join(' ')}")
end
source() click to toggle source
# File lib/spud/task_runners/docker-compose/task.rb, line 45
def source
  'docker-compose.yml'
end