docker-api 1.5.1 → 1.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.cane +1 -1
- data/README.md +6 -1
- data/lib/docker/image.rb +25 -32
- data/lib/docker/util.rb +30 -1
- data/lib/docker/version.rb +1 -1
- data/spec/docker/image_spec.rb +27 -0
- data/spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_exist/creates_a_new_Image_that_has_that_file.yml +288 -0
- data/spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_not_exist/raises_an_error.yml +79 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98aa4229f5b2957ca1a71442d35db07145de35ac
|
4
|
+
data.tar.gz: c4823cc1e8841e65f22637734c334f35275c27c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 231f8d67f44388c1027b93426c179dadc8312f355f994eec189ef98bc3cc2dda7b17673ce2727144423dd9ea23b399d60ed331e797e3241e4c78edf1fc165521
|
7
|
+
data.tar.gz: d3531ef538ee76d7358a2a6ee6ed6f2f2da2d9f6d92a7c30a0330b3706d324db5788c9a530eb419077cc6b3d86182115aaecfe3ea78f867ee2c0c0215fd5bbe1
|
data/.cane
CHANGED
@@ -1 +1 @@
|
|
1
|
-
--abc-max
|
1
|
+
--abc-max 13
|
data/README.md
CHANGED
@@ -94,10 +94,15 @@ require 'docker'
|
|
94
94
|
Docker::Image.create('fromRepo' => 'base')
|
95
95
|
# => Docker::Image { :id => ae7ffbcd1, :connection => Docker::Connection { :url => http://localhost, :options => {:port=>4243} } }
|
96
96
|
|
97
|
-
# Insert a file into an Image
|
97
|
+
# Insert a file into an Image from a url.
|
98
98
|
image.insert('path' => '/google', 'url' => 'http://google.com')
|
99
99
|
# => Docker::Image { :id => 11ef6c882, :connection => Docker::Connection { :url => http://localhost, :options => {:port=>4243} } }
|
100
100
|
|
101
|
+
# Insert a local file into an Image.
|
102
|
+
image.insert_local('localPath' => 'Gemfile', 'outputPath' => '/')
|
103
|
+
# => Docker::Image { :id => 682ea192f, :connection => Docker::Connection { :url => http://localhost, :options => {:port=>4243} } }
|
104
|
+
|
105
|
+
|
101
106
|
# Tag an Image.
|
102
107
|
image.tag('repo' => 'base2', 'force' => true)
|
103
108
|
# => nil
|
data/lib/docker/image.rb
CHANGED
@@ -43,6 +43,24 @@ class Docker::Image
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
+
# Given a path of a local file and the path it should be inserted, creates
|
47
|
+
# a new Image that has that file.
|
48
|
+
def insert_local(opts = {})
|
49
|
+
local_path = opts.delete('localPath')
|
50
|
+
output_path = opts.delete('outputPath')
|
51
|
+
if File.exist?(local_path)
|
52
|
+
basename = File.basename(local_path)
|
53
|
+
tar = Docker::Util.create_tar(
|
54
|
+
basename => File.read(local_path),
|
55
|
+
'Dockerfile' => "from #{self.id}\nadd #{basename} #{output_path}"
|
56
|
+
)
|
57
|
+
body = connection.post('/build', {}, :body => tar)
|
58
|
+
self.class.send(:new, connection, Docker::Util.extract_id(body))
|
59
|
+
else
|
60
|
+
raise ArgumentError, "#{local_path} does not exist."
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
46
64
|
# Remove the Image from the server.
|
47
65
|
def remove
|
48
66
|
connection.delete("/images/#{self.id}")
|
@@ -105,50 +123,25 @@ class Docker::Image
|
|
105
123
|
|
106
124
|
# Given a Dockerfile as a string, builds an Image.
|
107
125
|
def build(commands, connection = Docker.connection)
|
108
|
-
body = connection.post(
|
109
|
-
|
126
|
+
body = connection.post(
|
127
|
+
'/build', {},
|
128
|
+
:body => Docker::Util.create_tar('Dockerfile' => commands)
|
129
|
+
)
|
130
|
+
new(connection, Docker::Util.extract_id(body))
|
110
131
|
end
|
111
132
|
|
112
133
|
# Given a directory that contains a Dockerfile, builds an Image.
|
113
134
|
def build_from_dir(dir, connection = Docker.connection)
|
114
|
-
tar = create_dir_tar(dir)
|
135
|
+
tar = Docker::Util.create_dir_tar(dir)
|
115
136
|
body = connection.post(
|
116
137
|
'/build', {},
|
117
138
|
:headers => { 'Content-Type' => 'application/tar',
|
118
139
|
'Transfer-Encoding' => 'chunked' }
|
119
140
|
) { tar.read(Excon.defaults[:chunk_size]).to_s }
|
120
|
-
new(connection, extract_id(body))
|
141
|
+
new(connection, Docker::Util.extract_id(body))
|
121
142
|
ensure
|
122
143
|
tar.close unless tar.nil?
|
123
144
|
end
|
124
|
-
|
125
|
-
private
|
126
|
-
def extract_id(body)
|
127
|
-
line = body.lines.to_a[-1]
|
128
|
-
if (id = line.match(/^Successfully built ([a-f0-9]+)$/)) && !id[1].empty?
|
129
|
-
id[1]
|
130
|
-
else
|
131
|
-
raise UnexpectedResponseError, "Couldn't find id: #{body}"
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
def create_tar(input)
|
136
|
-
output = StringIO.new
|
137
|
-
Gem::Package::TarWriter.new(output) do |tar|
|
138
|
-
tar.add_file('Dockerfile', 0640) { |tar_file| tar_file.write(input) }
|
139
|
-
end
|
140
|
-
output.tap(&:rewind)
|
141
|
-
end
|
142
|
-
|
143
|
-
def create_dir_tar(directory)
|
144
|
-
cwd = FileUtils.pwd
|
145
|
-
tempfile = File.new('/tmp/out', 'wb')
|
146
|
-
FileUtils.cd(directory)
|
147
|
-
Archive::Tar::Minitar.pack('.', tempfile)
|
148
|
-
File.new('/tmp/out', 'r')
|
149
|
-
ensure
|
150
|
-
FileUtils.cd(cwd)
|
151
|
-
end
|
152
145
|
end
|
153
146
|
|
154
147
|
# Convenience method to return the path for a particular resource.
|
data/lib/docker/util.rb
CHANGED
@@ -9,5 +9,34 @@ module Docker::Util
|
|
9
9
|
raise UnexpectedResponseError, ex.message
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
def create_tar(hash = {})
|
13
|
+
output = StringIO.new
|
14
|
+
Gem::Package::TarWriter.new(output) do |tar|
|
15
|
+
hash.each do |file_name, input|
|
16
|
+
tar.add_file(file_name, 0640) { |tar_file| tar_file.write(input) }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
output.tap(&:rewind)
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_dir_tar(directory)
|
23
|
+
cwd = FileUtils.pwd
|
24
|
+
tempfile = File.new('/tmp/out', 'wb')
|
25
|
+
FileUtils.cd(directory)
|
26
|
+
Archive::Tar::Minitar.pack('.', tempfile)
|
27
|
+
File.new('/tmp/out', 'r')
|
28
|
+
ensure
|
29
|
+
FileUtils.cd(cwd)
|
30
|
+
end
|
31
|
+
|
32
|
+
def extract_id(body)
|
33
|
+
line = body.lines.to_a[-1]
|
34
|
+
if (id = line.match(/^Successfully built ([a-f0-9]+)$/)) && !id[1].empty?
|
35
|
+
id[1]
|
36
|
+
else
|
37
|
+
raise UnexpectedResponseError, "Couldn't find id: #{body}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
module_function :parse_json, :create_tar, :create_dir_tar, :extract_id
|
13
42
|
end
|
data/lib/docker/version.rb
CHANGED
data/spec/docker/image_spec.rb
CHANGED
@@ -40,6 +40,33 @@ describe Docker::Image do
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
+
describe '#insert_local' do
|
44
|
+
subject { described_class.build('from base') }
|
45
|
+
|
46
|
+
let(:new_image) {
|
47
|
+
subject.insert_local('localPath' => file, 'outputPath' => '/')
|
48
|
+
}
|
49
|
+
|
50
|
+
context 'when the local file does not exist' do
|
51
|
+
let(:file) { '/lol/not/a/file' }
|
52
|
+
|
53
|
+
it 'raises an error', :vcr do
|
54
|
+
expect { new_image }.to raise_error(Docker::Error::ArgumentError)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'when the local file does exist' do
|
59
|
+
let(:file) { './Gemfile' }
|
60
|
+
let(:gemfile) { File.read('Gemfile') }
|
61
|
+
|
62
|
+
it 'creates a new Image that has that file', :vcr do
|
63
|
+
new_image.run('cat /Gemfile').start.attach { |chunk|
|
64
|
+
chunk.should == gemfile
|
65
|
+
}
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
43
70
|
describe '#push' do
|
44
71
|
subject { described_class.create('fromImage' => 'base') }
|
45
72
|
|
@@ -0,0 +1,288 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://localhost:4243/v1.4/build
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: !binary |-
|
9
|
+
RG9ja2VyZmlsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
10
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
11
|
+
AAAAAAAAAAAAADAwMDA2NDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAwMDEx
|
12
|
+
ADAwMDAwMDAwMDAwADAxMzIzNQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
13
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
14
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMHdoZWVs
|
15
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd2hlZWwAAAAAAAAAAAAAAAAA
|
16
|
+
AAAAAAAAAAAAAAAAAAAwMDAwMDAwADAwMDAwMDAAAAAAAAAAAAAAAAAAAAAA
|
17
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
18
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
19
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
20
|
+
AAAAAAAAAAAAAAAAAAAAAABmcm9tIGJhc2UAAAAAAAAAAAAAAAAAAAAAAAAA
|
21
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
22
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
23
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
24
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
25
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
26
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
27
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
28
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
29
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
30
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
31
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
32
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
33
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
34
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
35
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
36
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
37
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
38
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
39
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
40
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
41
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
42
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
43
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
44
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
45
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
46
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
47
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
48
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
49
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
50
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
51
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
52
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
53
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
54
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
55
|
+
headers:
|
56
|
+
User-Agent:
|
57
|
+
- Swipely/Docker-API 1.5.1
|
58
|
+
Content-Type:
|
59
|
+
- application/json
|
60
|
+
response:
|
61
|
+
status:
|
62
|
+
code: 200
|
63
|
+
message: ''
|
64
|
+
headers:
|
65
|
+
Content-Type:
|
66
|
+
- text/plain; charset=utf-8
|
67
|
+
Date:
|
68
|
+
- Fri, 30 Aug 2013 19:10:51 GMT
|
69
|
+
Transfer-Encoding:
|
70
|
+
- chunked
|
71
|
+
body:
|
72
|
+
encoding: UTF-8
|
73
|
+
string: |
|
74
|
+
Step 1 : FROM base
|
75
|
+
---> b750fe79269d
|
76
|
+
Successfully built b750fe79269d
|
77
|
+
http_version:
|
78
|
+
recorded_at: Fri, 30 Aug 2013 19:10:51 GMT
|
79
|
+
- request:
|
80
|
+
method: post
|
81
|
+
uri: http://localhost:4243/v1.4/build
|
82
|
+
body:
|
83
|
+
encoding: UTF-8
|
84
|
+
string: !binary |-
|
85
|
+
R2VtZmlsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
86
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
87
|
+
AAAAAAAAAAAAADAwMDA2NDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAwMDQ2
|
88
|
+
ADAwMDAwMDAwMDAwADAxMjU0NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
89
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
90
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMHdoZWVs
|
91
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd2hlZWwAAAAAAAAAAAAAAAAA
|
92
|
+
AAAAAAAAAAAAAAAAAAAwMDAwMDAwADAwMDAwMDAAAAAAAAAAAAAAAAAAAAAA
|
93
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
94
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
95
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
96
|
+
AAAAAAAAAAAAAAAAAAAAAABzb3VyY2UgJ2h0dHA6Ly9ydWJ5Z2Vtcy5vcmcn
|
97
|
+
CgpnZW1zcGVjCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
98
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
99
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
100
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
101
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
102
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
103
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
104
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
105
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
106
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
107
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERvY2tlcmZpbGUA
|
108
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
109
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw
|
110
|
+
MDAwNjQwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDAzNwAwMDAwMDAwMDAw
|
111
|
+
MAAwMTMyNDUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
112
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
113
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDB3aGVlbAAAAAAAAAAAAAAA
|
114
|
+
AAAAAAAAAAAAAAAAAAAAAHdoZWVsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
115
|
+
AAAAMDAwMDAwMAAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
116
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
117
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
118
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
119
|
+
AAAAAAAAZnJvbSBiNzUwZmU3OTI2OWQKYWRkIEdlbWZpbGUgLwAAAAAAAAAA
|
120
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
121
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
122
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
123
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
124
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
125
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
126
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
127
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
128
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
129
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
130
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
131
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
132
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
133
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
134
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
135
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
136
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
137
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
138
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
139
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
140
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
141
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
142
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
143
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
144
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
145
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
146
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
147
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
148
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
149
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
150
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
151
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
152
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
153
|
+
AAAAAAAAAAAAAAAA
|
154
|
+
headers:
|
155
|
+
User-Agent:
|
156
|
+
- Swipely/Docker-API 1.5.1
|
157
|
+
Content-Type:
|
158
|
+
- application/json
|
159
|
+
response:
|
160
|
+
status:
|
161
|
+
code: 200
|
162
|
+
message: ''
|
163
|
+
headers:
|
164
|
+
Content-Type:
|
165
|
+
- text/plain; charset=utf-8
|
166
|
+
Date:
|
167
|
+
- Fri, 30 Aug 2013 19:10:51 GMT
|
168
|
+
Transfer-Encoding:
|
169
|
+
- chunked
|
170
|
+
body:
|
171
|
+
encoding: UTF-8
|
172
|
+
string: |
|
173
|
+
Step 1 : FROM b750fe79269d
|
174
|
+
---> b750fe79269d
|
175
|
+
Step 2 : ADD Gemfile /
|
176
|
+
---> eed61e263f7d
|
177
|
+
Successfully built eed61e263f7d
|
178
|
+
http_version:
|
179
|
+
recorded_at: Fri, 30 Aug 2013 19:10:51 GMT
|
180
|
+
- request:
|
181
|
+
method: post
|
182
|
+
uri: http://localhost:4243/v1.4/containers/create
|
183
|
+
body:
|
184
|
+
encoding: UTF-8
|
185
|
+
string: '{"Image":"eed61e263f7d","Cmd":["cat","/Gemfile"]}'
|
186
|
+
headers:
|
187
|
+
User-Agent:
|
188
|
+
- Swipely/Docker-API 1.5.1
|
189
|
+
Content-Type:
|
190
|
+
- application/json
|
191
|
+
response:
|
192
|
+
status:
|
193
|
+
code: 201
|
194
|
+
message: ''
|
195
|
+
headers:
|
196
|
+
Content-Type:
|
197
|
+
- text/plain; charset=utf-8
|
198
|
+
Content-Length:
|
199
|
+
- '21'
|
200
|
+
Date:
|
201
|
+
- Fri, 30 Aug 2013 19:10:51 GMT
|
202
|
+
body:
|
203
|
+
encoding: UTF-8
|
204
|
+
string: '{"Id":"d2060f8c9a82"}'
|
205
|
+
http_version:
|
206
|
+
recorded_at: Fri, 30 Aug 2013 19:10:51 GMT
|
207
|
+
- request:
|
208
|
+
method: post
|
209
|
+
uri: http://localhost:4243/v1.4/containers/d2060f8c9a82/start
|
210
|
+
body:
|
211
|
+
encoding: UTF-8
|
212
|
+
string: '{}'
|
213
|
+
headers:
|
214
|
+
User-Agent:
|
215
|
+
- Swipely/Docker-API 1.5.1
|
216
|
+
Content-Type:
|
217
|
+
- application/json
|
218
|
+
response:
|
219
|
+
status:
|
220
|
+
code: 204
|
221
|
+
message: ''
|
222
|
+
headers:
|
223
|
+
Content-Type:
|
224
|
+
- text/plain; charset=utf-8
|
225
|
+
Content-Length:
|
226
|
+
- '0'
|
227
|
+
Date:
|
228
|
+
- Fri, 30 Aug 2013 19:10:51 GMT
|
229
|
+
body:
|
230
|
+
encoding: UTF-8
|
231
|
+
string: ''
|
232
|
+
http_version:
|
233
|
+
recorded_at: Fri, 30 Aug 2013 19:10:51 GMT
|
234
|
+
- request:
|
235
|
+
method: post
|
236
|
+
uri: http://localhost:4243/v1.4/containers/d2060f8c9a82/start
|
237
|
+
body:
|
238
|
+
encoding: UTF-8
|
239
|
+
string: '{}'
|
240
|
+
headers:
|
241
|
+
User-Agent:
|
242
|
+
- Swipely/Docker-API 1.5.1
|
243
|
+
Content-Type:
|
244
|
+
- application/json
|
245
|
+
response:
|
246
|
+
status:
|
247
|
+
code: 500
|
248
|
+
message: ''
|
249
|
+
headers:
|
250
|
+
Content-Type:
|
251
|
+
- text/plain; charset=utf-8
|
252
|
+
Content-Length:
|
253
|
+
- '138'
|
254
|
+
Date:
|
255
|
+
- Fri, 30 Aug 2013 19:10:51 GMT
|
256
|
+
body:
|
257
|
+
encoding: UTF-8
|
258
|
+
string: |
|
259
|
+
Error starting container d2060f8c9a82: The container d2060f8c9a82e54e0662eeab6eae083513639bdc77c4b4fd9efad94858015c86 is already running.
|
260
|
+
http_version:
|
261
|
+
recorded_at: Fri, 30 Aug 2013 19:10:51 GMT
|
262
|
+
- request:
|
263
|
+
method: post
|
264
|
+
uri: http://localhost:4243/v1.4/containers/d2060f8c9a82/attach?stdout=true&stream=true
|
265
|
+
body:
|
266
|
+
encoding: US-ASCII
|
267
|
+
string: ''
|
268
|
+
headers:
|
269
|
+
User-Agent:
|
270
|
+
- Swipely/Docker-API 1.5.1
|
271
|
+
Content-Type:
|
272
|
+
- text/plain
|
273
|
+
response:
|
274
|
+
status:
|
275
|
+
code: 200
|
276
|
+
message: ''
|
277
|
+
headers:
|
278
|
+
Content-Type:
|
279
|
+
- application/vnd.docker.raw-stream
|
280
|
+
body:
|
281
|
+
encoding: UTF-8
|
282
|
+
string: |
|
283
|
+
source 'http://rubygems.org'
|
284
|
+
|
285
|
+
gemspec
|
286
|
+
http_version:
|
287
|
+
recorded_at: Fri, 30 Aug 2013 19:10:51 GMT
|
288
|
+
recorded_with: VCR 2.5.0
|
data/spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_not_exist/raises_an_error.yml
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://localhost:4243/v1.4/build
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: !binary |-
|
9
|
+
RG9ja2VyZmlsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
10
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
11
|
+
AAAAAAAAAAAAADAwMDA2NDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAwMDEx
|
12
|
+
ADAwMDAwMDAwMDAwADAxMzIzNQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
13
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
14
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMHdoZWVs
|
15
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd2hlZWwAAAAAAAAAAAAAAAAA
|
16
|
+
AAAAAAAAAAAAAAAAAAAwMDAwMDAwADAwMDAwMDAAAAAAAAAAAAAAAAAAAAAA
|
17
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
18
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
19
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
20
|
+
AAAAAAAAAAAAAAAAAAAAAABmcm9tIGJhc2UAAAAAAAAAAAAAAAAAAAAAAAAA
|
21
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
22
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
23
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
24
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
25
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
26
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
27
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
28
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
29
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
30
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
31
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
32
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
33
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
34
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
35
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
36
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
37
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
38
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
39
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
40
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
41
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
42
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
43
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
44
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
45
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
46
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
47
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
48
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
49
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
50
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
51
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
52
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
53
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
54
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
55
|
+
headers:
|
56
|
+
User-Agent:
|
57
|
+
- Swipely/Docker-API 1.5.1
|
58
|
+
Content-Type:
|
59
|
+
- application/json
|
60
|
+
response:
|
61
|
+
status:
|
62
|
+
code: 200
|
63
|
+
message: ''
|
64
|
+
headers:
|
65
|
+
Content-Type:
|
66
|
+
- text/plain; charset=utf-8
|
67
|
+
Date:
|
68
|
+
- Fri, 30 Aug 2013 18:43:13 GMT
|
69
|
+
Transfer-Encoding:
|
70
|
+
- chunked
|
71
|
+
body:
|
72
|
+
encoding: UTF-8
|
73
|
+
string: |
|
74
|
+
Step 1 : FROM base
|
75
|
+
---> b750fe79269d
|
76
|
+
Successfully built b750fe79269d
|
77
|
+
http_version:
|
78
|
+
recorded_at: Fri, 30 Aug 2013 18:43:14 GMT
|
79
|
+
recorded_with: VCR 2.5.0
|
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.5.
|
4
|
+
version: 1.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Swipely, Inc.
|
@@ -212,6 +212,8 @@ files:
|
|
212
212
|
- spec/vcr/Docker_Image/_create/when_the_Image_does_not_yet_exist_and_the_body_is_a_Hash/sets_the_id.yml
|
213
213
|
- spec/vcr/Docker_Image/_history/returns_the_history_of_the_Image.yml
|
214
214
|
- spec/vcr/Docker_Image/_insert/inserts_the_url_s_file_into_a_new_Image.yml
|
215
|
+
- spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_exist/creates_a_new_Image_that_has_that_file.yml
|
216
|
+
- spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_not_exist/raises_an_error.yml
|
215
217
|
- spec/vcr/Docker_Image/_json/returns_additional_information_about_image_image.yml
|
216
218
|
- spec/vcr/Docker_Image/_remove/removes_the_Image.yml
|
217
219
|
- spec/vcr/Docker_Image/_run/when_the_argument_is_a_String/splits_the_String_by_spaces_and_creates_a_new_Container.yml
|
@@ -282,6 +284,8 @@ test_files:
|
|
282
284
|
- spec/vcr/Docker_Image/_create/when_the_Image_does_not_yet_exist_and_the_body_is_a_Hash/sets_the_id.yml
|
283
285
|
- spec/vcr/Docker_Image/_history/returns_the_history_of_the_Image.yml
|
284
286
|
- spec/vcr/Docker_Image/_insert/inserts_the_url_s_file_into_a_new_Image.yml
|
287
|
+
- spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_exist/creates_a_new_Image_that_has_that_file.yml
|
288
|
+
- spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_not_exist/raises_an_error.yml
|
285
289
|
- spec/vcr/Docker_Image/_json/returns_additional_information_about_image_image.yml
|
286
290
|
- spec/vcr/Docker_Image/_remove/removes_the_Image.yml
|
287
291
|
- spec/vcr/Docker_Image/_run/when_the_argument_is_a_String/splits_the_String_by_spaces_and_creates_a_new_Container.yml
|