bigrig 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ccdd689c1a3ba3b0e547fc4fe5180b313b3610e
4
- data.tar.gz: 9089f2cc0e1be7cd25d2167b2675ff0adf6d9170
3
+ metadata.gz: 7f96cbf88808cce501cabd182b10bfa97efa540b
4
+ data.tar.gz: 3f9481df6ed7a4ee08d64eab4909b3e56a5183d9
5
5
  SHA512:
6
- metadata.gz: 9bdedb77926b357dcc304a4a4641e2360801facee0d91b3b43b17e9f691654a74d060a2e2b72e6eb957a01bcff29c9229edb6bd3246c324c2d612a8afb67fb84
7
- data.tar.gz: 8248c315851aed992335f00af90b95c53a5791eaeccc80c0032adbf4a7e417bfb6dbb83801ff9421fcb422b17e68f2190e382ba8552c60bec7807bc131d34364
6
+ metadata.gz: ff12570ead495890ad708f9ce15e7d43cce6a56a1340f347acc79c67cdbf7b263fc6ddbfe412279fdf1efedf1d77d00fa42443eb316fdd1f3b33c4237a1bf00b
7
+ data.tar.gz: ebbe529a24635fbf6ec8d18371b4ac8557bdeb21b60b01954616261d2c2f104fcc7712774243e22155239704fc1e55e2f89ba9c71e73170c87691c5d0b54a17b
data/CHANGELOG.md CHANGED
@@ -51,3 +51,7 @@ Add `volumes` attriute
51
51
  0.3.1
52
52
  =====
53
53
  * OutputParser now emits newlines correctly
54
+
55
+ 0.4.1
56
+ =====
57
+ * Add wait_for semantics
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bigrig (0.3.1)
4
+ bigrig (0.4.0)
5
5
  colorize (= 0.7.5)
6
6
  docker-api (= 1.20.0)
7
7
  filewatcher (= 0.4.0)
data/bigrig.gemspec CHANGED
@@ -3,11 +3,11 @@ require File.join([File.dirname(__FILE__), 'lib', 'bigrig', 'version.rb'])
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'bigrig'
5
5
  s.version = Bigrig::VERSION
6
- s.author = 'Your Name Here'
7
- s.email = 'your@email.address.com'
8
- s.homepage = 'http://your.website.com'
6
+ s.author = 'Hawk Newton'
7
+ s.email = 'hnewton@constantcontact.com'
8
+ s.homepage = 'http://constantcontact.com'
9
9
  s.platform = Gem::Platform::RUBY
10
- s.summary = 'A description of your project'
10
+ s.summary = 'Bigrig knows how to ship your composite docker applications'
11
11
  s.files = `git ls-files`.split('
12
12
  ')
13
13
  s.require_paths << 'lib'
@@ -21,6 +21,10 @@ module Bigrig
21
21
  false
22
22
  end
23
23
 
24
+ def exec(name, command)
25
+ Docker::Container.get(name).exec(command)
26
+ end
27
+
24
28
  def hosts(arr)
25
29
  (arr || []).map do |line|
26
30
  parts = line.split ':'
@@ -80,13 +84,9 @@ module Bigrig
80
84
 
81
85
  def run(args)
82
86
  container = create_container args
83
- container.start(
84
- 'Links' => args[:links],
85
- 'ExtraHosts' => hosts(args[:hosts]),
86
- 'PortBindings' => port_bindings(args[:ports]),
87
- 'VolumesFrom' => args[:volumes_from],
88
- 'Binds' => args[:volumes]
89
- )
87
+ container.start('Links' => args[:links], 'ExtraHosts' => hosts(args[:hosts]),
88
+ 'PortBindings' => port_bindings(args[:ports]),
89
+ 'VolumesFrom' => args[:volumes_from], 'Binds' => args[:volumes])
90
90
  container.id
91
91
  end
92
92
 
@@ -1,14 +1,16 @@
1
1
  module Bigrig
2
2
  class Container < BaseModel
3
+ ARRAY_ATTRS = :volumes_from, :links, :hosts, :volumes, :wait_for
3
4
  attr_accessor :env, :name, :path, :ports, :tag, :volumes_from, :links, :hosts, :repo,
4
- :volumes, :scan
5
+ :volumes, :scan, :wait_for
5
6
 
6
7
  class << self
7
8
  def from_json(name, json)
8
- opts = [:env, :path, :ports, :tag, :repo, :scan].each_with_object(name: name) do |e, o|
9
+ opts = [:env, :path, :ports, :tag,
10
+ :repo, :scan].each_with_object(name: name) do |e, o|
9
11
  o[e] = json.send :[], e.to_s
10
12
  end
11
- [:volumes_from, :links, :hosts, :volumes].each { |x| opts[x] = as_array json[x.to_s] }
13
+ ARRAY_ATTRS.each { |x| opts[x] = as_array json[x.to_s] }
12
14
 
13
15
  Container.new opts
14
16
  end
@@ -24,10 +26,10 @@ module Bigrig
24
26
  super
25
27
  @env ||= {}
26
28
  @ports ||= []
27
- @volumes ||= []
28
- @volumes_from ||= []
29
- @links ||= []
30
- @hosts ||= []
29
+
30
+ ARRAY_ATTRS.map { |a| "@#{a}" }.each do |attr|
31
+ instance_variable_get(attr) || instance_variable_set(attr, [])
32
+ end
31
33
 
32
34
  # Yes rubocop, I know this is a very stupid thing to do
33
35
  @env = Hash[*@env.map { |k, v| [k, eval("\"#{v}\"")] }.flatten] # rubocop:disable Lint/Eval
data/lib/bigrig/runner.rb CHANGED
@@ -34,6 +34,7 @@ module Bigrig
34
34
  step.map { |c| docker_opts_for c }
35
35
  end
36
36
 
37
+ # This is so retarded
37
38
  def docker_opts_for(container)
38
39
  { env: container.env,
39
40
  name: container.name,
@@ -42,7 +43,8 @@ module Bigrig
42
43
  volumes: container.volumes,
43
44
  links: container.links,
44
45
  hosts: container.hosts,
45
- image_id: image_id(container) }
46
+ image_id: image_id(container),
47
+ wait_for: container.wait_for }
46
48
  end
47
49
 
48
50
  def image_id(container)
@@ -70,6 +72,7 @@ module Bigrig
70
72
  Thread.new do
71
73
  puts "Starting #{container[:name]}"
72
74
  puts DockerAdapter.run(container)
75
+ wait_for container
73
76
  end
74
77
  end
75
78
 
@@ -88,5 +91,11 @@ module Bigrig
88
91
  end
89
92
  steps
90
93
  end
94
+
95
+ def wait_for(container)
96
+ container[:wait_for].empty? && return
97
+ puts "Waiting for `#{container[:wait_for].join ' '}` to compelte on #{container[:name]}"
98
+ DockerAdapter.exec(container[:name], container[:wait_for])
99
+ end
91
100
  end
92
101
  end
@@ -1,3 +1,3 @@
1
1
  module Bigrig
2
- VERSION = '0.3.1'
2
+ VERSION = '0.4.0'
3
3
  end
@@ -20,6 +20,8 @@ module Bigrig
20
20
  it { is_expected.to respond_to :volumes_from= }
21
21
  it { is_expected.to respond_to :volumes }
22
22
  it { is_expected.to respond_to :volumes= }
23
+ it { is_expected.to respond_to :wait_for }
24
+ it { is_expected.to respond_to :wait_for= }
23
25
 
24
26
  it 'accepts volumes as an array' do
25
27
  expect(Container.from_json(nil, 'volumes' => ['test']).volumes).to be_kind_of Array
@@ -61,6 +63,14 @@ module Bigrig
61
63
  expect(Container.from_json(nil, 'links' => 'machine:alias').dependencies).to eq ['machine']
62
64
  end
63
65
 
66
+ it 'accepts wait_for as an array' do
67
+ expect(Container.from_json(nil, 'wait_for' => ['test']).wait_for).to be_kind_of Array
68
+ end
69
+
70
+ it 'wraps a single wait_for in an array' do
71
+ expect(Container.from_json(nil, 'wait_for' => 'test').wait_for).to be_kind_of Array
72
+ end
73
+
64
74
  describe '#dependencies' do
65
75
  it 'returns an empty array when no dependencies are present' do
66
76
  expect(Container.from_json(nil, {}).dependencies).to eq []
@@ -132,6 +142,14 @@ module Bigrig
132
142
  expect(subject.ports).to eq ['80:8080', '12345']
133
143
  end
134
144
  end
145
+
146
+ context 'given json with wait_for' do
147
+ let(:json) { { 'wait_for' => 'random command' } }
148
+
149
+ it 'has wait_for' do
150
+ expect(subject.wait_for).to eq ['random command']
151
+ end
152
+ end
135
153
  end
136
154
  end
137
155
  end
data/spec/bigrig_spec.rb CHANGED
@@ -168,6 +168,8 @@ describe 'bigrig' do
168
168
  end
169
169
 
170
170
  describe 'run' do
171
+ after { container.kill.delete }
172
+
171
173
  context 'spec/data/single.json' do
172
174
  let(:args) { ['run'] }
173
175
  let(:output) { subject }
@@ -175,8 +177,6 @@ describe 'bigrig' do
175
177
  let(:running?) { container.json['State']['Running'] }
176
178
  let(:file) { 'spec/data/single.json' }
177
179
 
178
- after { container.kill.delete }
179
-
180
180
  it 'starts the container', :vcr do
181
181
  subject
182
182
  expect(running?).to be true
@@ -200,8 +200,6 @@ describe 'bigrig' do
200
200
  end
201
201
  end
202
202
 
203
- after { container.kill.delete }
204
-
205
203
  it 'overrides the tag', :vcr do
206
204
  subject
207
205
  expect(container.info['Image']).to eq image.id
@@ -217,6 +215,21 @@ describe 'bigrig' do
217
215
  expect { env.call }.to eventually(include 'NAME2' => 'VALUE2').by_suppressing_errors
218
216
  end
219
217
  end
218
+
219
+ context 'spec/data/wait_for.json' do
220
+ let(:args) { ['run'] }
221
+ let(:output) { subject }
222
+ let(:file) { 'spec/data/wait_for.json' }
223
+ let(:container) { Docker::Container.get 'wait_for-test' }
224
+ let(:result) do
225
+ Docker::Container.get('wait_for-test').exec(['cat', '/tmp/result.txt']).first.first.to_i
226
+ end
227
+
228
+ it 'waits for wait_for', :vcr do
229
+ subject
230
+ expect(result).to be 2
231
+ end
232
+ end
220
233
  end
221
234
 
222
235
  describe 'destroy' do
@@ -0,0 +1,9 @@
1
+ {
2
+ "containers": {
3
+ "wait_for-test": {
4
+ "repo": "hawknewton/show-env",
5
+ "tag": "0.0.1",
6
+ "wait_for": ["bash", "-c", "B=$(date +%s);sleep 2;echo $(($(date +%s) - $B)) > /tmp/result.txt"]
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,180 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Swipely/Docker-API 1.20.0
12
+ Content-Type:
13
+ - text/plain
14
+ response:
15
+ status:
16
+ code: 200
17
+ message:
18
+ headers:
19
+ Content-Type:
20
+ - application/json
21
+ Date:
22
+ - Thu, 21 May 2015 23:27:46 GMT
23
+ body:
24
+ encoding: UTF-8
25
+ string: |
26
+ {"AppArmorProfile":"","Args":["-c","ruby /code/server.rb"],"Config":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":null,"CpuShares":0,"Cpuset":"","Domainname":"","Entrypoint":["/bin/sh","-c","ruby /code/server.rb"],"Env":["PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","RUBY_MAJOR=2.1","RUBY_VERSION=2.1.3","GEM_HOME=/usr/local/bundle","BUNDLE_APP_CONFIG=/usr/local/bundle"],"ExposedPorts":{"80/tcp":{}},"Hostname":"3d59d6454aa5","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","Labels":{},"MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":null,"OpenStdin":false,"PortSpecs":null,"StdinOnce":false,"Tty":false,"User":"","Volumes":null,"WorkingDir":""},"Created":"2015-05-21T23:27:43.442382727Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":["f6ce28d9d7c5a5c9663b983b6105328e0a76c41e8a455d185670fa4c3ff261fd"],"HostConfig":{"Binds":[],"CapAdd":null,"CapDrop":null,"CgroupParent":"","ContainerIDFile":"","CpuShares":0,"CpusetCpus":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":[],"IpcMode":"","Links":null,"LogConfig":{"Config":null,"Type":"json-file"},"LxcConf":null,"Memory":0,"MemorySwap":0,"NetworkMode":"","PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"Ulimits":null,"VolumesFrom":[]},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hosts","Id":"3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","LogPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff-json.log","MountLabel":"","Name":"/wait_for-test","NetworkSettings":{"Bridge":"docker0","Gateway":"172.17.42.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.75","IPPrefixLen":16,"IPv6Gateway":"","LinkLocalIPv6Address":"fe80::42:acff:fe11:4b","LinkLocalIPv6PrefixLen":64,"MacAddress":"02:42:ac:11:00:4b","PortMapping":null,"Ports":{"80/tcp":null}},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/resolv.conf","RestartCount":0,"State":{"Dead":false,"Error":"","ExitCode":0,"FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":false,"Paused":false,"Pid":2713,"Restarting":false,"Running":true,"StartedAt":"2015-05-21T23:27:43.82703865Z"},"Volumes":{},"VolumesRW":{}}
27
+ http_version:
28
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
29
+ - request:
30
+ method: post
31
+ uri: "<DOCKER_HOST>/v1.16/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/exec"
32
+ body:
33
+ encoding: UTF-8
34
+ string: '{"AttachStdin":false,"AttachStdout":true,"AttachStderr":true,"Tty":false,"Cmd":["cat","/tmp/result.txt"]}'
35
+ headers:
36
+ User-Agent:
37
+ - Swipely/Docker-API 1.20.0
38
+ Content-Type:
39
+ - application/json
40
+ response:
41
+ status:
42
+ code: 201
43
+ message:
44
+ headers:
45
+ Content-Type:
46
+ - application/json
47
+ Date:
48
+ - Thu, 21 May 2015 23:27:46 GMT
49
+ Content-Length:
50
+ - '74'
51
+ body:
52
+ encoding: UTF-8
53
+ string: |
54
+ {"Id":"f790d63e79eca7aa1ab7d8b4b925c00a0e79964ef09fe7f524df0bc6e84ab090"}
55
+ http_version:
56
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
57
+ - request:
58
+ method: post
59
+ uri: "<DOCKER_HOST>/v1.16/exec/f790d63e79eca7aa1ab7d8b4b925c00a0e79964ef09fe7f524df0bc6e84ab090/start"
60
+ body:
61
+ encoding: UTF-8
62
+ string: '{"Tty":false,"Detach":false}'
63
+ headers:
64
+ User-Agent:
65
+ - Swipely/Docker-API 1.20.0
66
+ Content-Type:
67
+ - application/json
68
+ response:
69
+ status:
70
+ code: 200
71
+ message:
72
+ headers:
73
+ Content-Type:
74
+ - application/vnd.docker.raw-stream
75
+ body:
76
+ encoding: UTF-8
77
+ string: !binary |-
78
+ AQAAAAAAAAIyCg==
79
+ http_version:
80
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
81
+ - request:
82
+ method: get
83
+ uri: "<DOCKER_HOST>/v1.16/exec/f790d63e79eca7aa1ab7d8b4b925c00a0e79964ef09fe7f524df0bc6e84ab090/json"
84
+ body:
85
+ encoding: US-ASCII
86
+ string: ''
87
+ headers:
88
+ User-Agent:
89
+ - Swipely/Docker-API 1.20.0
90
+ Content-Type:
91
+ - text/plain
92
+ response:
93
+ status:
94
+ code: 200
95
+ message:
96
+ headers:
97
+ Content-Type:
98
+ - application/json
99
+ Date:
100
+ - Thu, 21 May 2015 23:27:46 GMT
101
+ body:
102
+ encoding: UTF-8
103
+ string: '{"ID":"f790d63e79eca7aa1ab7d8b4b925c00a0e79964ef09fe7f524df0bc6e84ab090","Running":false,"ExitCode":0,"ProcessConfig":{"privileged":false,"user":"","tty":false,"entrypoint":"cat","arguments":["/tmp/result.txt"]},"OpenStdin":false,"OpenStderr":true,"OpenStdout":true,"Container":{"State":{"Running":true,"Paused":false,"Restarting":false,"OOMKilled":false,"Dead":false,"Pid":2713,"ExitCode":0,"Error":"","StartedAt":"2015-05-21T23:27:43.82703865Z","FinishedAt":"0001-01-01T00:00:00Z"},"ID":"3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff","Created":"2015-05-21T23:27:43.442382727Z","Path":"/bin/sh","Args":["-c","ruby
104
+ /code/server.rb"],"Config":{"Hostname":"3d59d6454aa5","Domainname":"","User":"","Memory":0,"MemorySwap":0,"CpuShares":0,"Cpuset":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"PortSpecs":null,"ExposedPorts":{"80/tcp":{}},"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","RUBY_MAJOR=2.1","RUBY_VERSION=2.1.3","GEM_HOME=/usr/local/bundle","BUNDLE_APP_CONFIG=/usr/local/bundle"],"Cmd":null,"Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","Volumes":null,"WorkingDir":"","Entrypoint":["/bin/sh","-c","ruby
105
+ /code/server.rb"],"NetworkDisabled":false,"MacAddress":"","OnBuild":null,"Labels":{}},"Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","NetworkSettings":{"IPAddress":"172.17.0.75","IPPrefixLen":16,"MacAddress":"02:42:ac:11:00:4b","LinkLocalIPv6Address":"fe80::42:acff:fe11:4b","LinkLocalIPv6PrefixLen":64,"GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"Gateway":"172.17.42.1","IPv6Gateway":"","Bridge":"docker0","PortMapping":null,"Ports":{"80/tcp":null}},"ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/resolv.conf","HostnamePath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hosts","LogPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff-json.log","Name":"/wait_for-test","Driver":"aufs","ExecDriver":"native-0.2","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0,"UpdateDns":false,"Volumes":{},"VolumesRW":{},"AppliedVolumesFrom":null}}'
106
+ http_version:
107
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
108
+ - request:
109
+ method: get
110
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
111
+ body:
112
+ encoding: US-ASCII
113
+ string: ''
114
+ headers:
115
+ User-Agent:
116
+ - Swipely/Docker-API 1.20.0
117
+ Content-Type:
118
+ - text/plain
119
+ response:
120
+ status:
121
+ code: 200
122
+ message:
123
+ headers:
124
+ Content-Type:
125
+ - application/json
126
+ Date:
127
+ - Thu, 21 May 2015 23:27:46 GMT
128
+ body:
129
+ encoding: UTF-8
130
+ string: |
131
+ {"AppArmorProfile":"","Args":["-c","ruby /code/server.rb"],"Config":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":null,"CpuShares":0,"Cpuset":"","Domainname":"","Entrypoint":["/bin/sh","-c","ruby /code/server.rb"],"Env":["PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","RUBY_MAJOR=2.1","RUBY_VERSION=2.1.3","GEM_HOME=/usr/local/bundle","BUNDLE_APP_CONFIG=/usr/local/bundle"],"ExposedPorts":{"80/tcp":{}},"Hostname":"3d59d6454aa5","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","Labels":{},"MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":null,"OpenStdin":false,"PortSpecs":null,"StdinOnce":false,"Tty":false,"User":"","Volumes":null,"WorkingDir":""},"Created":"2015-05-21T23:27:43.442382727Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":["f6ce28d9d7c5a5c9663b983b6105328e0a76c41e8a455d185670fa4c3ff261fd","f790d63e79eca7aa1ab7d8b4b925c00a0e79964ef09fe7f524df0bc6e84ab090"],"HostConfig":{"Binds":[],"CapAdd":null,"CapDrop":null,"CgroupParent":"","ContainerIDFile":"","CpuShares":0,"CpusetCpus":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":[],"IpcMode":"","Links":null,"LogConfig":{"Config":null,"Type":"json-file"},"LxcConf":null,"Memory":0,"MemorySwap":0,"NetworkMode":"","PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"Ulimits":null,"VolumesFrom":[]},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hosts","Id":"3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","LogPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff-json.log","MountLabel":"","Name":"/wait_for-test","NetworkSettings":{"Bridge":"docker0","Gateway":"172.17.42.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.75","IPPrefixLen":16,"IPv6Gateway":"","LinkLocalIPv6Address":"fe80::42:acff:fe11:4b","LinkLocalIPv6PrefixLen":64,"MacAddress":"02:42:ac:11:00:4b","PortMapping":null,"Ports":{"80/tcp":null}},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/resolv.conf","RestartCount":0,"State":{"Dead":false,"Error":"","ExitCode":0,"FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":false,"Paused":false,"Pid":2713,"Restarting":false,"Running":true,"StartedAt":"2015-05-21T23:27:43.82703865Z"},"Volumes":{},"VolumesRW":{}}
132
+ http_version:
133
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
134
+ - request:
135
+ method: post
136
+ uri: "<DOCKER_HOST>/v1.16/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/kill"
137
+ body:
138
+ encoding: US-ASCII
139
+ string: ''
140
+ headers:
141
+ User-Agent:
142
+ - Swipely/Docker-API 1.20.0
143
+ Content-Type:
144
+ - text/plain
145
+ response:
146
+ status:
147
+ code: 204
148
+ message:
149
+ headers:
150
+ Date:
151
+ - Thu, 21 May 2015 23:27:46 GMT
152
+ body:
153
+ encoding: UTF-8
154
+ string: ''
155
+ http_version:
156
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
157
+ - request:
158
+ method: delete
159
+ uri: "<DOCKER_HOST>/v1.16/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff"
160
+ body:
161
+ encoding: US-ASCII
162
+ string: ''
163
+ headers:
164
+ User-Agent:
165
+ - Swipely/Docker-API 1.20.0
166
+ Content-Type:
167
+ - text/plain
168
+ response:
169
+ status:
170
+ code: 204
171
+ message:
172
+ headers:
173
+ Date:
174
+ - Thu, 21 May 2015 23:27:46 GMT
175
+ body:
176
+ encoding: UTF-8
177
+ string: ''
178
+ http_version:
179
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
180
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,412 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: "<DOCKER_HOST>/v1.16/images/hawknewton/show-env:0.0.1/json"
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Swipely/Docker-API 1.20.0
12
+ Content-Type:
13
+ - text/plain
14
+ response:
15
+ status:
16
+ code: 200
17
+ message:
18
+ headers:
19
+ Content-Type:
20
+ - application/json
21
+ Date:
22
+ - Thu, 21 May 2015 23:27:43 GMT
23
+ Content-Length:
24
+ - '1887'
25
+ body:
26
+ encoding: UTF-8
27
+ string: |
28
+ {"Architecture":"amd64","Author":"","Comment":"","Config":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":null,"CpuShares":0,"Cpuset":"","Domainname":"","Entrypoint":["/bin/sh","-c","ruby /code/server.rb"],"Env":["PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","RUBY_MAJOR=2.1","RUBY_VERSION=2.1.3","GEM_HOME=/usr/local/bundle","BUNDLE_APP_CONFIG=/usr/local/bundle"],"ExposedPorts":{"80/tcp":{}},"Hostname":"e5474231b7cd","Image":"4929b61a5fda27a07a26efc94ad61504c0f4aa2fb50471bfa4fd61c656d42131","Labels":null,"MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":[],"OpenStdin":false,"PortSpecs":null,"StdinOnce":false,"Tty":false,"User":"","Volumes":null,"WorkingDir":""},"Container":"d6d34d2bfd452f4175eab78597ddd29856f0af494d503b00f4160d5eb3f13f1b","ContainerConfig":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":["/bin/sh","-c","#(nop) ENTRYPOINT [/bin/sh -c ruby /code/server.rb]"],"CpuShares":0,"Cpuset":"","Domainname":"","Entrypoint":["/bin/sh","-c","ruby /code/server.rb"],"Env":["PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","RUBY_MAJOR=2.1","RUBY_VERSION=2.1.3","GEM_HOME=/usr/local/bundle","BUNDLE_APP_CONFIG=/usr/local/bundle"],"ExposedPorts":{"80/tcp":{}},"Hostname":"e5474231b7cd","Image":"4929b61a5fda27a07a26efc94ad61504c0f4aa2fb50471bfa4fd61c656d42131","Labels":null,"MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":[],"OpenStdin":false,"PortSpecs":null,"StdinOnce":false,"Tty":false,"User":"","Volumes":null,"WorkingDir":""},"Created":"2014-10-23T20:00:42.057514693Z","DockerVersion":"1.3.0","Id":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","Os":"linux","Parent":"4929b61a5fda27a07a26efc94ad61504c0f4aa2fb50471bfa4fd61c656d42131","Size":0,"VirtualSize":801041825}
29
+ http_version:
30
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
31
+ - request:
32
+ method: get
33
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
34
+ body:
35
+ encoding: US-ASCII
36
+ string: ''
37
+ headers:
38
+ User-Agent:
39
+ - Swipely/Docker-API 1.20.0
40
+ Content-Type:
41
+ - text/plain
42
+ response:
43
+ status:
44
+ code: 404
45
+ message:
46
+ headers:
47
+ Content-Type:
48
+ - text/plain; charset=utf-8
49
+ Date:
50
+ - Thu, 21 May 2015 23:27:43 GMT
51
+ Content-Length:
52
+ - '26'
53
+ body:
54
+ encoding: UTF-8
55
+ string: |
56
+ no such id: wait_for-test
57
+ http_version:
58
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
59
+ - request:
60
+ method: get
61
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
62
+ body:
63
+ encoding: US-ASCII
64
+ string: ''
65
+ headers:
66
+ User-Agent:
67
+ - Swipely/Docker-API 1.20.0
68
+ Content-Type:
69
+ - text/plain
70
+ response:
71
+ status:
72
+ code: 404
73
+ message:
74
+ headers:
75
+ Content-Type:
76
+ - text/plain; charset=utf-8
77
+ Date:
78
+ - Thu, 21 May 2015 23:27:43 GMT
79
+ Content-Length:
80
+ - '26'
81
+ body:
82
+ encoding: UTF-8
83
+ string: |
84
+ no such id: wait_for-test
85
+ http_version:
86
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
87
+ - request:
88
+ method: get
89
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
90
+ body:
91
+ encoding: US-ASCII
92
+ string: ''
93
+ headers:
94
+ User-Agent:
95
+ - Swipely/Docker-API 1.20.0
96
+ Content-Type:
97
+ - text/plain
98
+ response:
99
+ status:
100
+ code: 404
101
+ message:
102
+ headers:
103
+ Content-Type:
104
+ - text/plain; charset=utf-8
105
+ Date:
106
+ - Thu, 21 May 2015 23:27:43 GMT
107
+ Content-Length:
108
+ - '26'
109
+ body:
110
+ encoding: UTF-8
111
+ string: |
112
+ no such id: wait_for-test
113
+ http_version:
114
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
115
+ - request:
116
+ method: get
117
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
118
+ body:
119
+ encoding: US-ASCII
120
+ string: ''
121
+ headers:
122
+ User-Agent:
123
+ - Swipely/Docker-API 1.20.0
124
+ Content-Type:
125
+ - text/plain
126
+ response:
127
+ status:
128
+ code: 404
129
+ message:
130
+ headers:
131
+ Content-Type:
132
+ - text/plain; charset=utf-8
133
+ Date:
134
+ - Thu, 21 May 2015 23:27:43 GMT
135
+ Content-Length:
136
+ - '26'
137
+ body:
138
+ encoding: UTF-8
139
+ string: |
140
+ no such id: wait_for-test
141
+ http_version:
142
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
143
+ - request:
144
+ method: get
145
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
146
+ body:
147
+ encoding: US-ASCII
148
+ string: ''
149
+ headers:
150
+ User-Agent:
151
+ - Swipely/Docker-API 1.20.0
152
+ Content-Type:
153
+ - text/plain
154
+ response:
155
+ status:
156
+ code: 404
157
+ message:
158
+ headers:
159
+ Content-Type:
160
+ - text/plain; charset=utf-8
161
+ Date:
162
+ - Thu, 21 May 2015 23:27:43 GMT
163
+ Content-Length:
164
+ - '26'
165
+ body:
166
+ encoding: UTF-8
167
+ string: |
168
+ no such id: wait_for-test
169
+ http_version:
170
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
171
+ - request:
172
+ method: get
173
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
174
+ body:
175
+ encoding: US-ASCII
176
+ string: ''
177
+ headers:
178
+ User-Agent:
179
+ - Swipely/Docker-API 1.20.0
180
+ Content-Type:
181
+ - text/plain
182
+ response:
183
+ status:
184
+ code: 404
185
+ message:
186
+ headers:
187
+ Content-Type:
188
+ - text/plain; charset=utf-8
189
+ Date:
190
+ - Thu, 21 May 2015 23:27:43 GMT
191
+ Content-Length:
192
+ - '26'
193
+ body:
194
+ encoding: UTF-8
195
+ string: |
196
+ no such id: wait_for-test
197
+ http_version:
198
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
199
+ - request:
200
+ method: get
201
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
202
+ body:
203
+ encoding: US-ASCII
204
+ string: ''
205
+ headers:
206
+ User-Agent:
207
+ - Swipely/Docker-API 1.20.0
208
+ Content-Type:
209
+ - text/plain
210
+ response:
211
+ status:
212
+ code: 404
213
+ message:
214
+ headers:
215
+ Content-Type:
216
+ - text/plain; charset=utf-8
217
+ Date:
218
+ - Thu, 21 May 2015 23:27:43 GMT
219
+ Content-Length:
220
+ - '26'
221
+ body:
222
+ encoding: UTF-8
223
+ string: |
224
+ no such id: wait_for-test
225
+ http_version:
226
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
227
+ - request:
228
+ method: get
229
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
230
+ body:
231
+ encoding: US-ASCII
232
+ string: ''
233
+ headers:
234
+ User-Agent:
235
+ - Swipely/Docker-API 1.20.0
236
+ Content-Type:
237
+ - text/plain
238
+ response:
239
+ status:
240
+ code: 404
241
+ message:
242
+ headers:
243
+ Content-Type:
244
+ - text/plain; charset=utf-8
245
+ Date:
246
+ - Thu, 21 May 2015 23:27:43 GMT
247
+ Content-Length:
248
+ - '26'
249
+ body:
250
+ encoding: UTF-8
251
+ string: |
252
+ no such id: wait_for-test
253
+ http_version:
254
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
255
+ - request:
256
+ method: post
257
+ uri: "<DOCKER_HOST>/v1.16/containers/create?name=wait_for-test"
258
+ body:
259
+ encoding: UTF-8
260
+ string: '{"Env":[],"Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","ExposedPorts":{}}'
261
+ headers:
262
+ User-Agent:
263
+ - Swipely/Docker-API 1.20.0
264
+ Content-Type:
265
+ - application/json
266
+ response:
267
+ status:
268
+ code: 201
269
+ message:
270
+ headers:
271
+ Content-Type:
272
+ - application/json
273
+ Date:
274
+ - Thu, 21 May 2015 23:27:43 GMT
275
+ Content-Length:
276
+ - '90'
277
+ body:
278
+ encoding: UTF-8
279
+ string: |
280
+ {"Id":"3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff","Warnings":null}
281
+ http_version:
282
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
283
+ - request:
284
+ method: post
285
+ uri: "<DOCKER_HOST>/v1.16/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/start"
286
+ body:
287
+ encoding: UTF-8
288
+ string: '{"Links":[],"ExtraHosts":[],"PortBindings":{},"VolumesFrom":[],"Binds":[]}'
289
+ headers:
290
+ User-Agent:
291
+ - Swipely/Docker-API 1.20.0
292
+ Content-Type:
293
+ - application/json
294
+ response:
295
+ status:
296
+ code: 204
297
+ message:
298
+ headers:
299
+ Date:
300
+ - Thu, 21 May 2015 23:27:43 GMT
301
+ body:
302
+ encoding: UTF-8
303
+ string: ''
304
+ http_version:
305
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
306
+ - request:
307
+ method: get
308
+ uri: "<DOCKER_HOST>/v1.16/containers/wait_for-test/json"
309
+ body:
310
+ encoding: US-ASCII
311
+ string: ''
312
+ headers:
313
+ User-Agent:
314
+ - Swipely/Docker-API 1.20.0
315
+ Content-Type:
316
+ - text/plain
317
+ response:
318
+ status:
319
+ code: 200
320
+ message:
321
+ headers:
322
+ Content-Type:
323
+ - application/json
324
+ Date:
325
+ - Thu, 21 May 2015 23:27:43 GMT
326
+ body:
327
+ encoding: UTF-8
328
+ string: |
329
+ {"AppArmorProfile":"","Args":["-c","ruby /code/server.rb"],"Config":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":null,"CpuShares":0,"Cpuset":"","Domainname":"","Entrypoint":["/bin/sh","-c","ruby /code/server.rb"],"Env":["PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","RUBY_MAJOR=2.1","RUBY_VERSION=2.1.3","GEM_HOME=/usr/local/bundle","BUNDLE_APP_CONFIG=/usr/local/bundle"],"ExposedPorts":{"80/tcp":{}},"Hostname":"3d59d6454aa5","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","Labels":{},"MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":null,"OpenStdin":false,"PortSpecs":null,"StdinOnce":false,"Tty":false,"User":"","Volumes":null,"WorkingDir":""},"Created":"2015-05-21T23:27:43.442382727Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":[],"CapAdd":null,"CapDrop":null,"CgroupParent":"","ContainerIDFile":"","CpuShares":0,"CpusetCpus":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":[],"IpcMode":"","Links":null,"LogConfig":{"Config":null,"Type":"json-file"},"LxcConf":null,"Memory":0,"MemorySwap":0,"NetworkMode":"","PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"Ulimits":null,"VolumesFrom":[]},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hosts","Id":"3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","LogPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff-json.log","MountLabel":"","Name":"/wait_for-test","NetworkSettings":{"Bridge":"docker0","Gateway":"172.17.42.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.75","IPPrefixLen":16,"IPv6Gateway":"","LinkLocalIPv6Address":"fe80::42:acff:fe11:4b","LinkLocalIPv6PrefixLen":64,"MacAddress":"02:42:ac:11:00:4b","PortMapping":null,"Ports":{"80/tcp":null}},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/resolv.conf","RestartCount":0,"State":{"Dead":false,"Error":"","ExitCode":0,"FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":false,"Paused":false,"Pid":2713,"Restarting":false,"Running":true,"StartedAt":"2015-05-21T23:27:43.82703865Z"},"Volumes":{},"VolumesRW":{}}
330
+ http_version:
331
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
332
+ - request:
333
+ method: post
334
+ uri: "<DOCKER_HOST>/v1.16/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/exec"
335
+ body:
336
+ encoding: UTF-8
337
+ string: '{"AttachStdin":false,"AttachStdout":true,"AttachStderr":true,"Tty":false,"Cmd":["bash","-c","B=$(date
338
+ +%s);sleep 2;echo $(($(date +%s) - $B)) > /tmp/result.txt"]}'
339
+ headers:
340
+ User-Agent:
341
+ - Swipely/Docker-API 1.20.0
342
+ Content-Type:
343
+ - application/json
344
+ response:
345
+ status:
346
+ code: 201
347
+ message:
348
+ headers:
349
+ Content-Type:
350
+ - application/json
351
+ Date:
352
+ - Thu, 21 May 2015 23:27:43 GMT
353
+ Content-Length:
354
+ - '74'
355
+ body:
356
+ encoding: UTF-8
357
+ string: |
358
+ {"Id":"f6ce28d9d7c5a5c9663b983b6105328e0a76c41e8a455d185670fa4c3ff261fd"}
359
+ http_version:
360
+ recorded_at: Thu, 21 May 2015 23:27:43 GMT
361
+ - request:
362
+ method: post
363
+ uri: "<DOCKER_HOST>/v1.16/exec/f6ce28d9d7c5a5c9663b983b6105328e0a76c41e8a455d185670fa4c3ff261fd/start"
364
+ body:
365
+ encoding: UTF-8
366
+ string: '{"Tty":false,"Detach":false}'
367
+ headers:
368
+ User-Agent:
369
+ - Swipely/Docker-API 1.20.0
370
+ Content-Type:
371
+ - application/json
372
+ response:
373
+ status:
374
+ code: 200
375
+ message:
376
+ headers:
377
+ Content-Type:
378
+ - application/vnd.docker.raw-stream
379
+ body:
380
+ encoding: UTF-8
381
+ string: ''
382
+ http_version:
383
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
384
+ - request:
385
+ method: get
386
+ uri: "<DOCKER_HOST>/v1.16/exec/f6ce28d9d7c5a5c9663b983b6105328e0a76c41e8a455d185670fa4c3ff261fd/json"
387
+ body:
388
+ encoding: US-ASCII
389
+ string: ''
390
+ headers:
391
+ User-Agent:
392
+ - Swipely/Docker-API 1.20.0
393
+ Content-Type:
394
+ - text/plain
395
+ response:
396
+ status:
397
+ code: 200
398
+ message:
399
+ headers:
400
+ Content-Type:
401
+ - application/json
402
+ Date:
403
+ - Thu, 21 May 2015 23:27:46 GMT
404
+ body:
405
+ encoding: UTF-8
406
+ string: '{"ID":"f6ce28d9d7c5a5c9663b983b6105328e0a76c41e8a455d185670fa4c3ff261fd","Running":false,"ExitCode":0,"ProcessConfig":{"privileged":false,"user":"","tty":false,"entrypoint":"bash","arguments":["-c","B=$(date
407
+ +%s);sleep 2;echo $(($(date +%s) - $B)) \u003e /tmp/result.txt"]},"OpenStdin":false,"OpenStderr":true,"OpenStdout":true,"Container":{"State":{"Running":true,"Paused":false,"Restarting":false,"OOMKilled":false,"Dead":false,"Pid":2713,"ExitCode":0,"Error":"","StartedAt":"2015-05-21T23:27:43.82703865Z","FinishedAt":"0001-01-01T00:00:00Z"},"ID":"3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff","Created":"2015-05-21T23:27:43.442382727Z","Path":"/bin/sh","Args":["-c","ruby
408
+ /code/server.rb"],"Config":{"Hostname":"3d59d6454aa5","Domainname":"","User":"","Memory":0,"MemorySwap":0,"CpuShares":0,"Cpuset":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"PortSpecs":null,"ExposedPorts":{"80/tcp":{}},"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","RUBY_MAJOR=2.1","RUBY_VERSION=2.1.3","GEM_HOME=/usr/local/bundle","BUNDLE_APP_CONFIG=/usr/local/bundle"],"Cmd":null,"Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","Volumes":null,"WorkingDir":"","Entrypoint":["/bin/sh","-c","ruby
409
+ /code/server.rb"],"NetworkDisabled":false,"MacAddress":"","OnBuild":null,"Labels":{}},"Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","NetworkSettings":{"IPAddress":"172.17.0.75","IPPrefixLen":16,"MacAddress":"02:42:ac:11:00:4b","LinkLocalIPv6Address":"fe80::42:acff:fe11:4b","LinkLocalIPv6PrefixLen":64,"GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"Gateway":"172.17.42.1","IPv6Gateway":"","Bridge":"docker0","PortMapping":null,"Ports":{"80/tcp":null}},"ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/resolv.conf","HostnamePath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/hosts","LogPath":"/mnt/sda1/var/lib/docker/containers/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff/3d59d6454aa50c00bca4b73e58bdfe2e5864d2706e64b77983ff3b17886406ff-json.log","Name":"/wait_for-test","Driver":"aufs","ExecDriver":"native-0.2","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0,"UpdateDns":false,"Volumes":{},"VolumesRW":{},"AppliedVolumesFrom":null}}'
410
+ http_version:
411
+ recorded_at: Thu, 21 May 2015 23:27:46 GMT
412
+ recorded_with: VCR 2.9.3
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bigrig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - Your Name Here
7
+ - Hawk Newton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-29 00:00:00.000000000 Z
11
+ date: 2015-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -179,7 +179,7 @@ dependencies:
179
179
  - !ruby/object:Gem::Version
180
180
  version: 0.4.0
181
181
  description:
182
- email: your@email.address.com
182
+ email: hnewton@constantcontact.com
183
183
  executables:
184
184
  - bigrig
185
185
  extensions: []
@@ -258,6 +258,7 @@ files:
258
258
  - spec/data/tiny-image.tar
259
259
  - spec/data/volumes.json
260
260
  - spec/data/volumes_from.json
261
+ - spec/data/wait_for.json
261
262
  - spec/spec_helper.rb
262
263
  - spec/support/bigrig_vcr
263
264
  - spec/support/vcr.rb
@@ -318,6 +319,7 @@ files:
318
319
  - spec/vcr/bigrig/run/spec/data/profiles_json_-p_qa/overrides_the_tag.yml
319
320
  - spec/vcr/bigrig/run/spec/data/single_json/sends_the_name_of_the_container_to_stdout.yml
320
321
  - spec/vcr/bigrig/run/spec/data/single_json/starts_the_container.yml
322
+ - spec/vcr/bigrig/run/spec/data/wait_for_json/waits_for_wait_for.yml
321
323
  - spec/vcr/bigrig/ship/spec/data/ship_json/with_a_version/-c/cleans_the_image_when_its_done.yml
322
324
  - spec/vcr/bigrig/ship/spec/data/ship_json/with_a_version/builds_and_pushes_the_image.yml
323
325
  - spec/vcr/bigrig_bin_bigrig_destroy_spec/data/single_json_kills_the_container.yml
@@ -333,6 +335,7 @@ files:
333
335
  - spec/vcr/bigrig_bin_bigrig_run_spec/data/profiles_json_-p_qa_overrides_the_tag.yml
334
336
  - spec/vcr/bigrig_bin_bigrig_run_spec/data/single_json_sends_the_name_of_the_container_to_stdout.yml
335
337
  - spec/vcr/bigrig_bin_bigrig_run_spec/data/single_json_starts_the_container.yml
338
+ - spec/vcr/bigrig_bin_bigrig_run_spec/data/wait_for_json_waits_for_wait_for.yml
336
339
  - spec/vcr/bigrig_bin_bigrig_ship_spec/data/ship_json_with_a_version_-c_cleans_the_image_when_its_done.yml
337
340
  - spec/vcr/bigrig_bin_bigrig_ship_spec/data/ship_json_with_a_version_builds_and_pushes_the_image.yml
338
341
  - spec/waitfor_spec.rb
@@ -351,7 +354,7 @@ files:
351
354
  - test/volumes_from/exports_volumes/index.html
352
355
  - test/volumes_from/exports_volumes/run.sh
353
356
  - test/volumes_from/shipper.json
354
- homepage: http://your.website.com
357
+ homepage: http://constantcontact.com
355
358
  licenses: []
356
359
  metadata: {}
357
360
  post_install_message:
@@ -374,5 +377,5 @@ rubyforge_project:
374
377
  rubygems_version: 2.2.2
375
378
  signing_key:
376
379
  specification_version: 4
377
- summary: A description of your project
380
+ summary: Bigrig knows how to ship your composite docker applications
378
381
  test_files: []