class Kitchen::Driver::Docker

Docker driver for Kitchen.

@author Sean Porter <portertech@gmail.com>

Public Instance Methods

create(state) click to toggle source
# File lib/kitchen/driver/docker.rb, line 123
def create(state)
  container.create(state)

  wait_for_transport(state)
end
default_image() click to toggle source
# File lib/kitchen/driver/docker.rb, line 141
def default_image
  platform, release = instance.platform.name.split('-')
  if platform == 'centos' && release
    release = 'centos' + release.split('.').first
  end
  release ? [platform, release].join(':') : platform
end
default_platform() click to toggle source
# File lib/kitchen/driver/docker.rb, line 149
def default_platform
  instance.platform.name.split('-').first
end
destroy(state) click to toggle source
# File lib/kitchen/driver/docker.rb, line 129
def destroy(state)
  container.destroy(state)
end
verify_dependencies() click to toggle source
# File lib/kitchen/driver/docker.rb, line 117
def verify_dependencies
  run_command("#{config[:binary]} >> #{dev_null} 2>&1", quiet: true, use_sudo: config[:use_sudo])
rescue
  raise UserError, 'You must first install the Docker CLI tool https://www.docker.com/get-started'
end
wait_for_transport(state) click to toggle source
# File lib/kitchen/driver/docker.rb, line 133
def wait_for_transport(state)
  if config[:wait_for_transport]
    instance.transport.connection(state) do |conn|
      conn.wait_until_ready
    end
  end
end

Protected Instance Methods

container() click to toggle source
# File lib/kitchen/driver/docker.rb, line 155
def container
  @container ||= if windows_os?
                   Kitchen::Docker::Container::Windows.new(config)
                 else
                   Kitchen::Docker::Container::Linux.new(config)
                 end
  @container
end