docker-api 1.5.2 → 1.5.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98aa4229f5b2957ca1a71442d35db07145de35ac
4
- data.tar.gz: c4823cc1e8841e65f22637734c334f35275c27c3
3
+ metadata.gz: f0d24fe7ee17232226259b46a172f06261fd264f
4
+ data.tar.gz: e7ad9fe5f3ffdccdbe90d41a35e27f3326e2f564
5
5
  SHA512:
6
- metadata.gz: 231f8d67f44388c1027b93426c179dadc8312f355f994eec189ef98bc3cc2dda7b17673ce2727144423dd9ea23b399d60ed331e797e3241e4c78edf1fc165521
7
- data.tar.gz: d3531ef538ee76d7358a2a6ee6ed6f2f2da2d9f6d92a7c30a0330b3706d324db5788c9a530eb419077cc6b3d86182115aaecfe3ea78f867ee2c0c0215fd5bbe1
6
+ metadata.gz: 659c3b9a38880c6ad2a3673a02f89d3619789509e51da88b105ab7791ab276e786fdaf29cf91658cf9a233402232b8416ec4d0a4622a4e147b0b23e79fe3ef53
7
+ data.tar.gz: 74e5cdf949589a4d4b87cd1e18c63e30b4ef3cd26a2b29e77f8fb88b2614d80d7ff2001707d815d19b9722c0d6edc4c90a1d9e9a06e5fe96a43de57fc28db7e3
data/README.md CHANGED
@@ -102,6 +102,10 @@ image.insert('path' => '/google', 'url' => 'http://google.com')
102
102
  image.insert_local('localPath' => 'Gemfile', 'outputPath' => '/')
103
103
  # => Docker::Image { :id => 682ea192f, :connection => Docker::Connection { :url => http://localhost, :options => {:port=>4243} } }
104
104
 
105
+ # Insert multiple local files into an Image.
106
+ image.insert_local('localPath' => [ 'Gemfile', 'Rakefile' ], 'outputPath' => '/')
107
+ # => Docker::Image { :id => eb693ec80, :connection => Docker::Connection { :url => http://localhost, :options => {:port=>4243} } }
108
+
105
109
 
106
110
  # Tag an Image.
107
111
  image.tag('repo' => 'base2', 'force' => true)
data/lib/docker/image.rb CHANGED
@@ -46,19 +46,18 @@ class Docker::Image
46
46
  # Given a path of a local file and the path it should be inserted, creates
47
47
  # a new Image that has that file.
48
48
  def insert_local(opts = {})
49
- local_path = opts.delete('localPath')
49
+ local_paths = opts.delete('localPath')
50
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
51
+
52
+ local_paths = [ local_paths ] unless local_paths.is_a?(Array)
53
+
54
+ file_hash = Docker::Util.file_hash_from_paths(local_paths)
55
+
56
+ file_hash['Dockerfile'] = dockerfile_for(file_hash, output_path)
57
+
58
+ tar = Docker::Util.create_tar(file_hash)
59
+ body = connection.post('/build', {}, :body => tar)
60
+ self.class.send(:new, connection, Docker::Util.extract_id(body))
62
61
  end
63
62
 
64
63
  # Remove the Image from the server.
@@ -144,10 +143,23 @@ class Docker::Image
144
143
  end
145
144
  end
146
145
 
146
+ private
147
+
147
148
  # Convenience method to return the path for a particular resource.
148
149
  def path_for(resource)
149
150
  "/images/#{self.id}/#{resource}"
150
151
  end
151
152
 
152
- private :path_for
153
+
154
+ # Convience method to get the Dockerfile for a file hash and a path to
155
+ # output to.
156
+ def dockerfile_for(file_hash, output_path)
157
+ dockerfile = "from #{self.id}"
158
+
159
+ file_hash.keys.each do |basename|
160
+ dockerfile << "add #{basename} #{output_path}"
161
+ end
162
+
163
+ dockerfile
164
+ end
153
165
  end
data/lib/docker/util.rb CHANGED
@@ -3,6 +3,8 @@
3
3
  module Docker::Util
4
4
  include Docker::Error
5
5
 
6
+ module_function
7
+
6
8
  def parse_json(body)
7
9
  JSON.parse(body) unless body.nil? || body.empty? || (body == 'null')
8
10
  rescue JSON::ParserError => ex
@@ -38,5 +40,21 @@ module Docker::Util
38
40
  end
39
41
  end
40
42
 
41
- module_function :parse_json, :create_tar, :create_dir_tar, :extract_id
43
+ # Convenience method to get the file hash corresponding to an array of
44
+ # local paths.
45
+ def file_hash_from_paths(local_paths)
46
+ file_hash = {}
47
+
48
+ local_paths.each do |local_path|
49
+ if File.exist?(local_path)
50
+ basename = File.basename(local_path)
51
+
52
+ file_hash[basename] = File.read(local_path)
53
+ else
54
+ raise ArgumentError, "#{local_path} does not exist."
55
+ end
56
+ end
57
+
58
+ file_hash
59
+ end
42
60
  end
@@ -1,6 +1,6 @@
1
1
  module Docker
2
2
  # The version of the docker-api gem.
3
- VERSION = '1.5.2'
3
+ VERSION = '1.5.3'
4
4
 
5
5
  # The version of the compatible Docker remote API.
6
6
  API_VERSION = '1.4'
@@ -65,6 +65,18 @@ describe Docker::Image do
65
65
  }
66
66
  end
67
67
  end
68
+
69
+ context 'when there are multiple files passed' do
70
+ let(:file) { ['./Gemfile', './Rakefile'] }
71
+ let(:gemfile) { File.read('Gemfile') }
72
+ let(:rakefile) { File.read('Rakefile') }
73
+
74
+ it 'creates a new Image that has each file', :vcr do
75
+ new_image.run('cat /Gemfile /Rakefile').start.attach do |chunk|
76
+ chunk.should == gemfile + rakefile
77
+ end
78
+ end
79
+ end
68
80
  end
69
81
 
70
82
  describe '#push' do
@@ -0,0 +1,327 @@
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.3
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
+ - Sat, 14 Sep 2013 23:02:27 GMT
69
+ Transfer-Encoding:
70
+ - chunked
71
+ body:
72
+ encoding: UTF-8
73
+ string: "Step 1 : FROM base\nPulling repository base\r\nPulling image b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc
74
+ (ubuntu-quantl) from base\r\n ---> b750fe79269d\nSuccessfully built b750fe79269d\n"
75
+ http_version:
76
+ recorded_at: Sat, 14 Sep 2013 23:02:31 GMT
77
+ - request:
78
+ method: post
79
+ uri: http://localhost:4243/v1.4/build
80
+ body:
81
+ encoding: UTF-8
82
+ string: !binary |-
83
+ R2VtZmlsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
84
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
85
+ AAAAAAAAAAAAADAwMDA2NDAAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAwMDQ2
86
+ ADAwMDAwMDAwMDAwADAxMjU0NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
87
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
88
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMHdoZWVs
89
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd2hlZWwAAAAAAAAAAAAAAAAA
90
+ AAAAAAAAAAAAAAAAAAAwMDAwMDAwADAwMDAwMDAAAAAAAAAAAAAAAAAAAAAA
91
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
92
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
93
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
94
+ AAAAAAAAAAAAAAAAAAAAAABzb3VyY2UgJ2h0dHA6Ly9ydWJ5Z2Vtcy5vcmcn
95
+ CgpnZW1zcGVjCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
96
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
97
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
98
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
99
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
100
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
101
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
102
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
103
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
104
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
105
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJha2VmaWxlAAAA
106
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
107
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw
108
+ MDAwNjQwADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDUxMAAwMDAwMDAwMDAw
109
+ MAAwMTI3MTQAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
110
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
111
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDB3aGVlbAAAAAAAAAAAAAAA
112
+ AAAAAAAAAAAAAAAAAAAAAHdoZWVsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
113
+ AAAAMDAwMDAwMAAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
114
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
115
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
116
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
117
+ AAAAAAAAJExPQURfUEFUSC51bnNoaWZ0KEZpbGUuam9pbihGaWxlLmRpcm5h
118
+ bWUoX19GSUxFX18pLCAnbGliJykpCgpyZXF1aXJlICdyYWtlJwpyZXF1aXJl
119
+ ICdkb2NrZXInCnJlcXVpcmUgJ3JzcGVjL2NvcmUvcmFrZV90YXNrJwpyZXF1
120
+ aXJlICdjYW5lL3Jha2VfdGFzaycKCnRhc2sgOmRlZmF1bHQgPT4gWzpzcGVj
121
+ LCA6cXVhbGl0eV0KClJTcGVjOjpDb3JlOjpSYWtlVGFzay5uZXcgZG8gfHR8
122
+ CiAgdC5wYXR0ZXJuID0gJ3NwZWMvKiovKl9zcGVjLnJiJwplbmQKCkNhbmU6
123
+ OlJha2VUYXNrLm5ldyg6cXVhbGl0eSkgZG8gfGNhbmV8CiAgY2FuZS5jYW5l
124
+ ZmlsZSA9ICcuY2FuZScKZW5kCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
125
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
126
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
127
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
128
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEb2NrZXJmaWxlAAAAAAAAAAAAAAAA
129
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
130
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0MAAwMDAw
131
+ MDAwADAwMDAwMDAAMDAwMDAwMDAwNTcAMDAwMDAwMDAwMDAAMDEzMjQ3ACAw
132
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
133
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
134
+ AAAAAAAAAAAAAHVzdGFyADAwd2hlZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
135
+ AAAAAAB3aGVlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAA
136
+ MDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
137
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
138
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
139
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZyb20g
140
+ Yjc1MGZlNzkyNjlkCmFkZCBHZW1maWxlIC8KYWRkIFJha2VmaWxlIC8KAAAA
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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
154
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
155
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
156
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
157
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
158
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
159
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
160
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
161
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
162
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
163
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
164
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
165
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
166
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
167
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
168
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
169
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
170
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
171
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
172
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
173
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
174
+ AA==
175
+ headers:
176
+ User-Agent:
177
+ - Swipely/Docker-API 1.5.3
178
+ Content-Type:
179
+ - application/json
180
+ response:
181
+ status:
182
+ code: 200
183
+ message: ''
184
+ headers:
185
+ Content-Type:
186
+ - text/plain; charset=utf-8
187
+ Date:
188
+ - Sat, 14 Sep 2013 23:02:31 GMT
189
+ Transfer-Encoding:
190
+ - chunked
191
+ body:
192
+ encoding: UTF-8
193
+ string: |
194
+ Step 1 : FROM b750fe79269d
195
+ ---> b750fe79269d
196
+ Step 2 : ADD Gemfile /
197
+ ---> 8124a17c1581
198
+ Step 3 : ADD Rakefile /
199
+ ---> ed8565d07a24
200
+ Successfully built ed8565d07a24
201
+ http_version:
202
+ recorded_at: Sat, 14 Sep 2013 23:02:31 GMT
203
+ - request:
204
+ method: post
205
+ uri: http://localhost:4243/v1.4/containers/create
206
+ body:
207
+ encoding: UTF-8
208
+ string: '{"Image":"ed8565d07a24","Cmd":["cat","/Gemfile","/Rakefile"]}'
209
+ headers:
210
+ User-Agent:
211
+ - Swipely/Docker-API 1.5.3
212
+ Content-Type:
213
+ - application/json
214
+ response:
215
+ status:
216
+ code: 201
217
+ message: ''
218
+ headers:
219
+ Content-Type:
220
+ - text/plain; charset=utf-8
221
+ Content-Length:
222
+ - '21'
223
+ Date:
224
+ - Sat, 14 Sep 2013 23:02:31 GMT
225
+ body:
226
+ encoding: UTF-8
227
+ string: '{"Id":"01b2292bf658"}'
228
+ http_version:
229
+ recorded_at: Sat, 14 Sep 2013 23:02:31 GMT
230
+ - request:
231
+ method: post
232
+ uri: http://localhost:4243/v1.4/containers/01b2292bf658/start
233
+ body:
234
+ encoding: UTF-8
235
+ string: '{}'
236
+ headers:
237
+ User-Agent:
238
+ - Swipely/Docker-API 1.5.3
239
+ Content-Type:
240
+ - application/json
241
+ response:
242
+ status:
243
+ code: 204
244
+ message: ''
245
+ headers:
246
+ Content-Type:
247
+ - text/plain; charset=utf-8
248
+ Content-Length:
249
+ - '0'
250
+ Date:
251
+ - Sat, 14 Sep 2013 23:02:31 GMT
252
+ body:
253
+ encoding: UTF-8
254
+ string: ''
255
+ http_version:
256
+ recorded_at: Sat, 14 Sep 2013 23:02:31 GMT
257
+ - request:
258
+ method: post
259
+ uri: http://localhost:4243/v1.4/containers/01b2292bf658/start
260
+ body:
261
+ encoding: UTF-8
262
+ string: '{}'
263
+ headers:
264
+ User-Agent:
265
+ - Swipely/Docker-API 1.5.3
266
+ Content-Type:
267
+ - application/json
268
+ response:
269
+ status:
270
+ code: 500
271
+ message: ''
272
+ headers:
273
+ Content-Type:
274
+ - text/plain; charset=utf-8
275
+ Content-Length:
276
+ - '138'
277
+ Date:
278
+ - Sat, 14 Sep 2013 23:02:31 GMT
279
+ body:
280
+ encoding: UTF-8
281
+ string: |
282
+ Error starting container 01b2292bf658: The container 01b2292bf6589519cb88fd1fc85b51472a5813cbba49333567cc0a129c57026b is already running.
283
+ http_version:
284
+ recorded_at: Sat, 14 Sep 2013 23:02:31 GMT
285
+ - request:
286
+ method: post
287
+ uri: http://localhost:4243/v1.4/containers/01b2292bf658/attach?stdout=true&stream=true
288
+ body:
289
+ encoding: US-ASCII
290
+ string: ''
291
+ headers:
292
+ User-Agent:
293
+ - Swipely/Docker-API 1.5.3
294
+ Content-Type:
295
+ - text/plain
296
+ response:
297
+ status:
298
+ code: 200
299
+ message: ''
300
+ headers:
301
+ Content-Type:
302
+ - application/vnd.docker.raw-stream
303
+ body:
304
+ encoding: UTF-8
305
+ string: |
306
+ source 'http://rubygems.org'
307
+
308
+ gemspec
309
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
310
+
311
+ require 'rake'
312
+ require 'docker'
313
+ require 'rspec/core/rake_task'
314
+ require 'cane/rake_task'
315
+
316
+ task :default => [:spec, :quality]
317
+
318
+ RSpec::Core::RakeTask.new do |t|
319
+ t.pattern = 'spec/**/*_spec.rb'
320
+ end
321
+
322
+ Cane::RakeTask.new(:quality) do |cane|
323
+ cane.canefile = '.cane'
324
+ end
325
+ http_version:
326
+ recorded_at: Sat, 14 Sep 2013 23:02:31 GMT
327
+ recorded_with: VCR 2.5.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.2
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swipely, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-30 00:00:00.000000000 Z
11
+ date: 2013-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon
@@ -214,6 +214,7 @@ files:
214
214
  - spec/vcr/Docker_Image/_insert/inserts_the_url_s_file_into_a_new_Image.yml
215
215
  - spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_exist/creates_a_new_Image_that_has_that_file.yml
216
216
  - spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_not_exist/raises_an_error.yml
217
+ - spec/vcr/Docker_Image/_insert_local/when_there_are_multiple_files_passed/creates_a_new_Image_that_has_each_file.yml
217
218
  - spec/vcr/Docker_Image/_json/returns_additional_information_about_image_image.yml
218
219
  - spec/vcr/Docker_Image/_remove/removes_the_Image.yml
219
220
  - spec/vcr/Docker_Image/_run/when_the_argument_is_a_String/splits_the_String_by_spaces_and_creates_a_new_Container.yml
@@ -286,6 +287,7 @@ test_files:
286
287
  - spec/vcr/Docker_Image/_insert/inserts_the_url_s_file_into_a_new_Image.yml
287
288
  - spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_exist/creates_a_new_Image_that_has_that_file.yml
288
289
  - spec/vcr/Docker_Image/_insert_local/when_the_local_file_does_not_exist/raises_an_error.yml
290
+ - spec/vcr/Docker_Image/_insert_local/when_there_are_multiple_files_passed/creates_a_new_Image_that_has_each_file.yml
289
291
  - spec/vcr/Docker_Image/_json/returns_additional_information_about_image_image.yml
290
292
  - spec/vcr/Docker_Image/_remove/removes_the_Image.yml
291
293
  - spec/vcr/Docker_Image/_run/when_the_argument_is_a_String/splits_the_String_by_spaces_and_creates_a_new_Container.yml