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 +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/bigrig.gemspec +4 -4
- data/lib/bigrig/docker_adapter.rb +7 -7
- data/lib/bigrig/models/container.rb +9 -7
- data/lib/bigrig/runner.rb +10 -1
- data/lib/bigrig/version.rb +1 -1
- data/spec/bigrig/models/container_spec.rb +18 -0
- data/spec/bigrig_spec.rb +17 -4
- data/spec/data/wait_for.json +9 -0
- data/spec/vcr/bigrig/run/spec/data/wait_for_json/waits_for_wait_for.yml +180 -0
- data/spec/vcr/bigrig_bin_bigrig_run_spec/data/wait_for_json_waits_for_wait_for.yml +412 -0
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f96cbf88808cce501cabd182b10bfa97efa540b
|
4
|
+
data.tar.gz: 3f9481df6ed7a4ee08d64eab4909b3e56a5183d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff12570ead495890ad708f9ce15e7d43cce6a56a1340f347acc79c67cdbf7b263fc6ddbfe412279fdf1efedf1d77d00fa42443eb316fdd1f3b33c4237a1bf00b
|
7
|
+
data.tar.gz: ebbe529a24635fbf6ec8d18371b4ac8557bdeb21b60b01954616261d2c2f104fcc7712774243e22155239704fc1e55e2f89ba9c71e73170c87691c5d0b54a17b
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
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 = '
|
7
|
-
s.email = '
|
8
|
-
s.homepage = 'http://
|
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 = '
|
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
|
-
|
85
|
-
|
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,
|
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
|
-
|
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
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
data/lib/bigrig/version.rb
CHANGED
@@ -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,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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Hawk Newton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
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:
|
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://
|
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:
|
380
|
+
summary: Bigrig knows how to ship your composite docker applications
|
378
381
|
test_files: []
|