Class: VagrantPlugins::Vocker::Provisioner

Inherits:
Object
  • Object
show all
Defined in:
lib/vocker/provisioner.rb

Overview

TODO: Improve handling of vagrant-lxc specifics (like checking for apparmor

profile stuff + autocorrection)

Instance Method Summary collapse

Constructor Details

#initialize(machine, config, installer = nil, client = nil) ⇒ Provisioner

Returns a new instance of Provisioner.



10
11
12
13
14
# File 'lib/vocker/provisioner.rb', line 10

def initialize(machine, config, installer = nil, client = nil)
  super(machine, config)
  @installer = installer || DockerInstaller.new(@machine, config.version)
  @client    = client    || DockerClient.new(@machine)
end

Instance Method Details

#provisionObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/vocker/provisioner.rb', line 16

def provision
  @logger = Log4r::Logger.new("vagrant::provisioners::vocker")

  @logger.info("Checking for Docker installation...")
  @installer.ensure_installed

  # Attempt to start service if not running
  @client.start_service
  unless @client.daemon_running?
    raise Errors::DockerNotRunning
  end

  if config.images.any?
    @machine.ui.info(I18n.t("vagrant.docker_pulling_images"))
    @client.pull_images(*config.images)
  end

  if config.containers.any?
    @machine.ui.info(I18n.t("vagrant.docker_starting_containers"))
    @client.run(config.containers)
  end
end