docker-api 1.9.0 → 1.9.1

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: b70bfc4fd881c989f413056ad18ce1165966abe1
4
- data.tar.gz: 110f62598c550dc8d9173dbcbfe71c92e514ecf4
3
+ metadata.gz: edade4b46130ae53c3aac96bed39d36b75458ee8
4
+ data.tar.gz: c3c9cbbac2ba8dd1341fbd6c3d880f0bad2c07f8
5
5
  SHA512:
6
- metadata.gz: 61f23c630f3d5473f2b8e18c29fad771010bb69c6b3d0e027b632bba12bcf45efe1553c7905409a7e72b3f61168c26424e4f02d7b87d181593279932650a41ae
7
- data.tar.gz: 7d32ffe97ef06302cfdd49a67dfe0cd11989cba29b297341f5d44bcaf51584f2d6ef73c5bb7bb4acc89fe06fdd9f4a16a8449e1ced4bb469766648ad75bee790
6
+ metadata.gz: a44e1785d0b9211ed4a90713cdf21de767333c7c0b2f14c8a3fb8512cae66606365d152ead59a050a16d4862a4b8d411fd1fcfec305c93d14264cb2198bcb9da
7
+ data.tar.gz: 82e5fcdc52be6a81fae97b8b191f94faade6e94dcb330dacfe74c8498511e7882f6e7dc1d484187d27c96cd2762b509758ebd589fc15dea05b6dc8a507e61eb9
data/README.md CHANGED
@@ -269,5 +269,27 @@ require 'docker'
269
269
  Docker::Container.all({}, Docker::Connection.new('http://example.com:4243', {}))
270
270
  ```
271
271
 
272
+ ## Rake Task
273
+
274
+ To create images through `rake`, a DSL task is provided. For example:
275
+
276
+
277
+ ```ruby
278
+ require 'rake'
279
+ require 'docker'
280
+
281
+ image 'repo:tag' do
282
+ image = Docker::Image.create('fromImage' => 'repo', 'tag' => 'old_tag')
283
+ image = Docker::Image.run('rm -rf /etc').commit
284
+ image.tag('repo' => 'repo', 'tag' => 'tag')
285
+ end
286
+
287
+ image 'repo:new_tag' => 'repo:tag' do
288
+ image = Docker::Image.create('fromImage' => 'repo', 'tag' => 'tag')
289
+ image = image.insert_local('localPath' => 'some-file.tar.gz', 'outputPath' => '/')
290
+ image.tag('repo' => 'repo', 'tag' => 'new_tag')
291
+ end
292
+ ```
293
+
272
294
  ## Known Issues
273
295
  - `Docker::Container#attach` cannot attach to STDIN
@@ -6,21 +6,22 @@ require 'base64'
6
6
  require 'rubygems/package'
7
7
  require 'archive/tar/minitar'
8
8
  require 'uri'
9
- require 'docker/version'
10
9
 
11
10
  # The top-level module for this gem. It's purpose is to hold global
12
11
  # configuration variables that are used as defaults in other classes.
13
12
  module Docker
14
13
  attr_accessor :creds, :logger
15
14
 
16
- autoload :Connection, 'docker/connection'
17
- autoload :Container, 'docker/container'
18
- autoload :Error, 'docker/error'
19
- autoload :Event, 'docker/event'
20
- autoload :Image, 'docker/image'
21
- autoload :Messages, 'docker/messages'
22
- autoload :Util, 'docker/util'
23
- autoload :Base, 'docker/base'
15
+ require 'docker/error'
16
+ require 'docker/connection'
17
+ require 'docker/base'
18
+ require 'docker/container'
19
+ require 'docker/event'
20
+ require 'docker/image'
21
+ require 'docker/messages'
22
+ require 'docker/util'
23
+ require 'docker/version'
24
+ require 'docker/rake_task' if defined?(Rake)
24
25
 
25
26
  def default_socket_url
26
27
  'unix:///var/run/docker.sock'
@@ -0,0 +1,30 @@
1
+ require 'rake'
2
+ require 'docker'
3
+
4
+ # This class allows image-based tasks to be created.
5
+ class Docker::ImageTask
6
+ def needed?
7
+ Docker::Image.all(:all => true).any? { |image|
8
+ image['RepoTags'].include?(repo_tag)
9
+ }
10
+ end
11
+
12
+ def repo
13
+ name.split(':')[0]
14
+ end
15
+
16
+ def tag
17
+ name.split(':')[1] || 'latest'
18
+ end
19
+
20
+ def repo_tag
21
+ "#{repo}:#{tag}"
22
+ end
23
+ end
24
+
25
+ # Monkey patch Rake::DSL to add the `image` method.
26
+ module Rake::DSL
27
+ def image(*args, &block)
28
+ Docker::ImageTask.define_task(*args, &block)
29
+ end
30
+ end
@@ -1,6 +1,6 @@
1
1
  module Docker
2
2
  # The version of the docker-api gem.
3
- VERSION = '1.9.0'
3
+ VERSION = '1.9.1'
4
4
 
5
5
  # The version of the compatible Docker remote API.
6
6
  API_VERSION = '1.9'
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.9.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swipely, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-06 00:00:00.000000000 Z
11
+ date: 2014-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon
@@ -161,6 +161,7 @@ files:
161
161
  - lib/docker/event.rb
162
162
  - lib/docker/image.rb
163
163
  - lib/docker/messages.rb
164
+ - lib/docker/rake_task.rb
164
165
  - lib/docker/util.rb
165
166
  - lib/docker/version.rb
166
167
  - spec/docker/connection_spec.rb