Sha256: b8421d46a82a50e52996dac8e726f91b7d4da24938542f3b37ef482c2368afe0

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

require_relative "errors"
require_relative "docker_client"
require_relative "docker_installer"

module VagrantPlugins
  module Vocker
    # TODO: Improve handling of vagrant-lxc specifics (like checking for apparmor
    #       profile stuff + autocorrection)
    class Provisioner < Vagrant.plugin("2", :provisioner)
      def initialize(machine, config, installer = nil, client = nil)
        super(machine, config)
        @installer = installer || DockerInstaller.new(@machine)
        @client    = client    || DockerClient.new(@machine)
      end

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

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

        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
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vocker-0.3.1 lib/vocker/provisioner.rb
vocker-0.3.0 lib/vocker/provisioner.rb
vocker-0.2.1 lib/vocker/provisioner.rb
vocker-0.2.0 lib/vocker/provisioner.rb