bigrig 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []