Module: Docker

Extended by:
Docker
Included in:
Docker
Defined in:
lib/docker.rb,
lib/docker/version.rb

Overview

The top-level module for this gem. It’s purpose is to hold global configuration variables that are used as defaults in other classes.

Defined Under Namespace

Modules: Error, Model, Util Classes: Connection, Container, Image

Constant Summary collapse

VERSION =

The version of the docker-api gem.

'1.4.0'
API_VERSION =

The version of the compatible Docker remote API.

'1.4'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#credsObject (readonly)

Returns the value of attribute creds.



13
14
15
# File 'lib/docker.rb', line 13

def creds
  @creds
end

Instance Method Details

#authenticate!(options = {}) ⇒ Object

Login to the Docker registry.



53
54
55
56
57
# File 'lib/docker.rb', line 53

def authenticate!(options = {})
  @creds = options.to_json
  connection.post(:path => '/auth', :body => @creds)
  true
end

#connectionObject



34
35
36
# File 'lib/docker.rb', line 34

def connection
  @connection ||= Connection.new(url, options)
end

#infoObject

Get more information about the Docker server.



48
49
50
# File 'lib/docker.rb', line 48

def info
  Util.parse_json(connection.get('/info'))
end

#optionsObject



19
20
21
22
# File 'lib/docker.rb', line 19

def options
  port = (ENV['DOCKER_PORT'].nil? ? 4243 : ENV['DOCKER_PORT']).to_i
  @options ||= { :port => port.to_i }
end

#options=(new_options) ⇒ Object



29
30
31
32
# File 'lib/docker.rb', line 29

def options=(new_options)
  @options = { :port => 4243 }.merge(new_options)
  reset_connection!
end

#reset_connection!Object



38
39
40
# File 'lib/docker.rb', line 38

def reset_connection!
  @connection = nil
end

#urlObject



15
16
17
# File 'lib/docker.rb', line 15

def url
  @url ||= "http://#{ENV['DOCKER_HOST'] || 'localhost'}"
end

#url=(new_url) ⇒ Object



24
25
26
27
# File 'lib/docker.rb', line 24

def url=(new_url)
  @url = new_url
  reset_connection!
end

#validate_version!Object

When the correct version of Docker is installed, returns true. Otherwise, raises a VersionError.



61
62
63
64
65
66
# File 'lib/docker.rb', line 61

def validate_version!
  Docker.info
  true
rescue Docker::Error::DockerError
  raise Docker::Error::VersionError, "Expected API Version: #{API_VERSION}"
end

#versionObject

Get the version of Go, Docker, and optionally the Git commit.



43
44
45
# File 'lib/docker.rb', line 43

def version
  Util.parse_json(connection.get('/version'))
end