docker-api 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +12 -0
- data/lib/docker.rb +3 -2
- data/lib/docker/connection.rb +2 -1
- data/lib/docker/image.rb +1 -1
- data/lib/docker/version.rb +1 -1
- data/spec/docker/connection_spec.rb +2 -1
- data/spec/docker_spec.rb +32 -0
- metadata +2 -2
data/README.md
CHANGED
@@ -51,6 +51,18 @@ Docker.options = { :port => 5422 }
|
|
51
51
|
|
52
52
|
Two things to note here. The first is that this gem uses [excon](http://www.github.com/geemus/excon), so any of the options that are valid for `Excon.new` are alse valid for `Docker.options`. Second, by default Docker runs on port 4243. The gem will assume you want to connnect to port 4243 unless you specify otherwise.
|
53
53
|
|
54
|
+
Also, you may set the above variables via `ENV` variables. For example:
|
55
|
+
|
56
|
+
```shell
|
57
|
+
$ DOCKER_HOST=example.com DOCKER_PORT=1000 irb
|
58
|
+
irb(main):001:0> require 'docker'
|
59
|
+
=> true
|
60
|
+
irb(main):002:0> Docker.url
|
61
|
+
=> http://example.com
|
62
|
+
irb(main):003:0> Docker.options
|
63
|
+
=> {:port=>1000}
|
64
|
+
```
|
65
|
+
|
54
66
|
Before doing anything else, ensure you have the correct version of the Docker API. To do this, run `Docker.validate_version!`. If your installed version is not supported, a `Docker::Error::VersionError` is raised.
|
55
67
|
|
56
68
|
## Global calls
|
data/lib/docker.rb
CHANGED
@@ -13,11 +13,12 @@ module Docker
|
|
13
13
|
attr_reader :creds
|
14
14
|
|
15
15
|
def url
|
16
|
-
@url ||= '
|
16
|
+
@url ||= "http://#{ENV['DOCKER_HOST'] || 'localhost'}"
|
17
17
|
end
|
18
18
|
|
19
19
|
def options
|
20
|
-
|
20
|
+
port = (ENV['DOCKER_PORT'].nil? ? 4243 : ENV['DOCKER_PORT']).to_i
|
21
|
+
@options ||= { :port => port.to_i }
|
21
22
|
end
|
22
23
|
|
23
24
|
def url=(new_url)
|
data/lib/docker/connection.rb
CHANGED
@@ -53,12 +53,13 @@ private
|
|
53
53
|
query ||= {}
|
54
54
|
opts ||= {}
|
55
55
|
headers = opts.delete(:headers) || {}
|
56
|
+
user_agent = "Swipely/Docker-API #{Docker::VERSION}"
|
56
57
|
{
|
57
58
|
:method => http_method,
|
58
59
|
:path => "/v#{Docker::API_VERSION}#{path}",
|
59
60
|
:query => query,
|
60
61
|
:headers => { 'Content-Type' => 'text/plain',
|
61
|
-
'User-Agent' =>
|
62
|
+
'User-Agent' => user_agent,
|
62
63
|
}.merge(headers),
|
63
64
|
:expects => (200..204),
|
64
65
|
:idempotent => http_method == :get,
|
data/lib/docker/image.rb
CHANGED
@@ -113,7 +113,7 @@ class Docker::Image
|
|
113
113
|
|
114
114
|
def create_dir_tar(directory)
|
115
115
|
cwd = FileUtils.pwd
|
116
|
-
tempfile = File.new('/tmp/out', '
|
116
|
+
tempfile = File.new('/tmp/out', 'wb')
|
117
117
|
FileUtils.cd(directory)
|
118
118
|
Archive::Tar::Minitar.pack('.', tempfile)
|
119
119
|
File.new('/tmp/out', 'r')
|
data/lib/docker/version.rb
CHANGED
@@ -52,7 +52,8 @@ describe Docker::Connection do
|
|
52
52
|
:path => "/v#{Docker::API_VERSION}#{path}",
|
53
53
|
:query => query,
|
54
54
|
:headers => { 'Content-Type' => 'text/plain',
|
55
|
-
'User-Agent' =>
|
55
|
+
'User-Agent' => "Swipely/Docker-API #{Docker::VERSION}",
|
56
|
+
},
|
56
57
|
:expects => 201,
|
57
58
|
:idempotent => true,
|
58
59
|
:lol => true
|
data/spec/docker_spec.rb
CHANGED
@@ -3,11 +3,43 @@ require 'spec_helper'
|
|
3
3
|
describe Docker do
|
4
4
|
subject { Docker }
|
5
5
|
|
6
|
+
before do
|
7
|
+
ENV['DOCKER_HOST'] = nil
|
8
|
+
ENV['DOCKER_PORT'] = nil
|
9
|
+
end
|
10
|
+
|
6
11
|
it { should be_a Module }
|
7
12
|
its(:options) { should == { :port => 4243 } }
|
8
13
|
its(:url) { should == 'http://localhost' }
|
9
14
|
its(:connection) { should be_a Docker::Connection }
|
10
15
|
|
16
|
+
context 'when the DOCKER_HOST ENV variable is set' do
|
17
|
+
let(:host) { 'google.com' }
|
18
|
+
let(:url) { "http://#{host}" }
|
19
|
+
|
20
|
+
before do
|
21
|
+
Docker.instance_variable_set(:@url, nil)
|
22
|
+
ENV['DOCKER_HOST'] = host
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'sets Docker.url to that variable' do
|
26
|
+
subject.url.should == url
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when the DOCKER_PORT ENV variable is set' do
|
31
|
+
let(:port) { 1234 }
|
32
|
+
|
33
|
+
before do
|
34
|
+
Docker.instance_variable_set(:@options, nil)
|
35
|
+
ENV['DOCKER_PORT'] = port.to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'sets Docker.options[:port] to that variable' do
|
39
|
+
subject.options[:port].should == port
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
11
43
|
describe '#reset_connection!' do
|
12
44
|
before { subject.connection }
|
13
45
|
it 'sets the @connection to nil' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: excon
|