bigrig 0.0.7 → 0.1.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/lib/bigrig/docker_adapter.rb +2 -1
- data/lib/bigrig/models/container.rb +3 -4
- data/lib/bigrig/runner.rb +1 -0
- data/lib/bigrig/version.rb +1 -1
- data/spec/bigrig/actions/run_action_spec.rb +26 -3
- data/spec/bigrig/models/container_spec.rb +13 -0
- data/spec/data/volumes.json +2 -6
- data/spec/data/volumes_from.json +13 -0
- data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_volumes/should_pass_volumes_to_the_right_container.yml +430 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 681ac8a51eebdb90849b5e4d444583f4b651119d
|
4
|
+
data.tar.gz: d25ebc45f4af29b468231985847e7c1d295348e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf7d8a8ad5b9735817c8e2ef4a535a1928afd7314e890693ffc4c883cb9059acf9d83fa510bac8a46b947776e90622ab9cd4e291964be6327a7c5628e4453976
|
7
|
+
data.tar.gz: 5a6699fd7aa8df839185dcd9f2177c22fcbb6ce349042cb60df644b5167367ce5383384f67ab858246fbc885e226c0f05273e142284d3c1af8a2ae0be2a2b3d8
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -84,7 +84,8 @@ module Bigrig
|
|
84
84
|
'Links' => args[:links],
|
85
85
|
'ExtraHosts' => hosts(args[:hosts]),
|
86
86
|
'PortBindings' => port_bindings(args[:ports]),
|
87
|
-
'VolumesFrom' => args[:volumes_from]
|
87
|
+
'VolumesFrom' => args[:volumes_from],
|
88
|
+
'Binds' => args[:volumes]
|
88
89
|
)
|
89
90
|
container.id
|
90
91
|
end
|
@@ -1,15 +1,13 @@
|
|
1
1
|
module Bigrig
|
2
2
|
class Container < BaseModel
|
3
|
-
attr_accessor :env, :name, :path, :ports, :tag, :volumes_from, :links, :hosts, :repo
|
3
|
+
attr_accessor :env, :name, :path, :ports, :tag, :volumes_from, :links, :hosts, :repo, :volumes
|
4
4
|
|
5
5
|
class << self
|
6
6
|
def from_json(name, json)
|
7
7
|
opts = [:env, :path, :ports, :tag, :repo].each_with_object(name: name) do |e, o|
|
8
8
|
o[e] = json.send :[], e.to_s
|
9
9
|
end
|
10
|
-
|
11
|
-
opts[:links] = as_array json['links']
|
12
|
-
opts[:hosts] = as_array json['hosts']
|
10
|
+
[:volumes_from, :links, :hosts, :volumes].each { |x| opts[x] = as_array json[x.to_s] }
|
13
11
|
|
14
12
|
Container.new opts
|
15
13
|
end
|
@@ -25,6 +23,7 @@ module Bigrig
|
|
25
23
|
super
|
26
24
|
@env ||= {}
|
27
25
|
@ports ||= []
|
26
|
+
@volumes ||= []
|
28
27
|
@volumes_from ||= []
|
29
28
|
@links ||= []
|
30
29
|
@hosts ||= []
|
data/lib/bigrig/runner.rb
CHANGED
data/lib/bigrig/version.rb
CHANGED
@@ -143,8 +143,28 @@ module Bigrig
|
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
146
|
-
context 'given a file with
|
146
|
+
context 'given a file with volumes' do
|
147
147
|
let(:file) { 'volumes.json' }
|
148
|
+
let(:container) { Docker::Container.get 'volumes' }
|
149
|
+
let(:volumes) { container.json['HostConfig']['Binds'] }
|
150
|
+
let(:perform) { subject }
|
151
|
+
|
152
|
+
after do
|
153
|
+
begin
|
154
|
+
c1 = Docker::Container.get 'volumes'
|
155
|
+
c1.kill.delete
|
156
|
+
rescue Docker::Error::NotFoundError # rubocop:disable Lint/HandleExceptions
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
it 'should pass volumes to the right container', :vcr do
|
161
|
+
perform
|
162
|
+
expect(volumes).to eq ['/tmp/test:/test']
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
context 'given a file with volumes_from' do
|
167
|
+
let(:file) { 'volumes_from.json' }
|
148
168
|
let(:container) { Docker::Container.get 'mounts_volumes' }
|
149
169
|
let(:volumes_from) { container.json['HostConfig']['VolumesFrom'] }
|
150
170
|
let(:perform) { subject }
|
@@ -254,8 +274,11 @@ module Bigrig
|
|
254
274
|
let(:active_profiles) { ['notreallyathing'] }
|
255
275
|
|
256
276
|
after do
|
257
|
-
|
258
|
-
|
277
|
+
begin
|
278
|
+
container = Docker::Container.get 'profiles'
|
279
|
+
container.delete force: true
|
280
|
+
rescue Docker::Error::NotFoundError # rubocop:disable Lint/HandleExceptions
|
281
|
+
end
|
259
282
|
end
|
260
283
|
|
261
284
|
it 'ignores the missing profile', :vcr do
|
@@ -16,6 +16,16 @@ module Bigrig
|
|
16
16
|
it { is_expected.to respond_to :tag= }
|
17
17
|
it { is_expected.to respond_to :volumes_from }
|
18
18
|
it { is_expected.to respond_to :volumes_from= }
|
19
|
+
it { is_expected.to respond_to :volumes }
|
20
|
+
it { is_expected.to respond_to :volumes= }
|
21
|
+
|
22
|
+
it 'accepts volumes as an array' do
|
23
|
+
expect(Container.from_json(nil, 'volumes' => ['test']).volumes).to be_kind_of Array
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'wraps a single volumes in an array' do
|
27
|
+
expect(Container.from_json(nil, 'volumes' => 'test').volumes).to be_kind_of Array
|
28
|
+
end
|
19
29
|
|
20
30
|
it 'accepts volumes_from as an array' do
|
21
31
|
expect(Container.from_json(nil, 'volumes_from' => ['test']).volumes_from).to be_kind_of Array
|
@@ -68,6 +78,9 @@ module Bigrig
|
|
68
78
|
its(:volumes_from) { is_expected.to be_empty }
|
69
79
|
its(:volumes_from) { is_expected.to be_a Array }
|
70
80
|
|
81
|
+
its(:volumes) { is_expected.to be_empty }
|
82
|
+
its(:volumes) { is_expected.to be_a Array }
|
83
|
+
|
71
84
|
its(:ports) { is_expected.to be_a Array }
|
72
85
|
its(:ports) { is_expected.to be_empty }
|
73
86
|
|
data/spec/data/volumes.json
CHANGED
@@ -1,13 +1,9 @@
|
|
1
1
|
{
|
2
2
|
"containers": {
|
3
|
-
"
|
4
|
-
"repo": "hawknewton/show-env",
|
5
|
-
"tag": "0.0.1"
|
6
|
-
},
|
7
|
-
"mounts_volumes": {
|
3
|
+
"volumes": {
|
8
4
|
"repo": "hawknewton/show-env",
|
9
5
|
"tag": "0.0.1",
|
10
|
-
"
|
6
|
+
"volumes": "/tmp/test:/test"
|
11
7
|
}
|
12
8
|
}
|
13
9
|
}
|
@@ -0,0 +1,430 @@
|
|
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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
23
|
+
Content-Length:
|
24
|
+
- '1859'
|
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","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","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: Tue, 31 Mar 2015 20:20:48 GMT
|
31
|
+
- request:
|
32
|
+
method: get
|
33
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
51
|
+
Content-Length:
|
52
|
+
- '27'
|
53
|
+
body:
|
54
|
+
encoding: UTF-8
|
55
|
+
string: |
|
56
|
+
No such container: volumes
|
57
|
+
http_version:
|
58
|
+
recorded_at: Tue, 31 Mar 2015 20:20:48 GMT
|
59
|
+
- request:
|
60
|
+
method: get
|
61
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
79
|
+
Content-Length:
|
80
|
+
- '27'
|
81
|
+
body:
|
82
|
+
encoding: UTF-8
|
83
|
+
string: |
|
84
|
+
No such container: volumes
|
85
|
+
http_version:
|
86
|
+
recorded_at: Tue, 31 Mar 2015 20:20:48 GMT
|
87
|
+
- request:
|
88
|
+
method: get
|
89
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
107
|
+
Content-Length:
|
108
|
+
- '27'
|
109
|
+
body:
|
110
|
+
encoding: UTF-8
|
111
|
+
string: |
|
112
|
+
No such container: volumes
|
113
|
+
http_version:
|
114
|
+
recorded_at: Tue, 31 Mar 2015 20:20:48 GMT
|
115
|
+
- request:
|
116
|
+
method: get
|
117
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
135
|
+
Content-Length:
|
136
|
+
- '27'
|
137
|
+
body:
|
138
|
+
encoding: UTF-8
|
139
|
+
string: |
|
140
|
+
No such container: volumes
|
141
|
+
http_version:
|
142
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
143
|
+
- request:
|
144
|
+
method: get
|
145
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
163
|
+
Content-Length:
|
164
|
+
- '27'
|
165
|
+
body:
|
166
|
+
encoding: UTF-8
|
167
|
+
string: |
|
168
|
+
No such container: volumes
|
169
|
+
http_version:
|
170
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
171
|
+
- request:
|
172
|
+
method: get
|
173
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
191
|
+
Content-Length:
|
192
|
+
- '27'
|
193
|
+
body:
|
194
|
+
encoding: UTF-8
|
195
|
+
string: |
|
196
|
+
No such container: volumes
|
197
|
+
http_version:
|
198
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
199
|
+
- request:
|
200
|
+
method: get
|
201
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
219
|
+
Content-Length:
|
220
|
+
- '27'
|
221
|
+
body:
|
222
|
+
encoding: UTF-8
|
223
|
+
string: |
|
224
|
+
No such container: volumes
|
225
|
+
http_version:
|
226
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
227
|
+
- request:
|
228
|
+
method: get
|
229
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
247
|
+
Content-Length:
|
248
|
+
- '27'
|
249
|
+
body:
|
250
|
+
encoding: UTF-8
|
251
|
+
string: |
|
252
|
+
No such container: volumes
|
253
|
+
http_version:
|
254
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
255
|
+
- request:
|
256
|
+
method: post
|
257
|
+
uri: "<DOCKER_HOST>/v1.16/containers/create?name=volumes"
|
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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
275
|
+
Content-Length:
|
276
|
+
- '90'
|
277
|
+
body:
|
278
|
+
encoding: UTF-8
|
279
|
+
string: |
|
280
|
+
{"Id":"e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8","Warnings":null}
|
281
|
+
http_version:
|
282
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
283
|
+
- request:
|
284
|
+
method: post
|
285
|
+
uri: "<DOCKER_HOST>/v1.16/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/start"
|
286
|
+
body:
|
287
|
+
encoding: UTF-8
|
288
|
+
string: '{"Links":[],"ExtraHosts":[],"PortBindings":{},"VolumesFrom":[],"Binds":["/tmp/test:/test"]}'
|
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
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
301
|
+
body:
|
302
|
+
encoding: UTF-8
|
303
|
+
string: ''
|
304
|
+
http_version:
|
305
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
306
|
+
- request:
|
307
|
+
method: get
|
308
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/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
|
+
- Tue, 31 Mar 2015 20:20:49 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":"e724885676e7","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":null,"OpenStdin":false,"PortSpecs":null,"StdinOnce":false,"Tty":false,"User":"","Volumes":null,"WorkingDir":""},"Created":"2015-03-31T20:20:49.429686833Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":["/tmp/test:/test"],"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":[],"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":[]},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/hosts","Id":"e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/volumes","NetworkSettings":{"Bridge":"docker0","Gateway":"172.17.42.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.176","IPPrefixLen":16,"IPv6Gateway":"","LinkLocalIPv6Address":"fe80::42:acff:fe11:b0","LinkLocalIPv6PrefixLen":64,"MacAddress":"02:42:ac:11:00:b0","PortMapping":null,"Ports":{"80/tcp":null}},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":0,"FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":false,"Paused":false,"Pid":11117,"Restarting":false,"Running":true,"StartedAt":"2015-03-31T20:20:49.785091726Z"},"Volumes":{"/test":"/mnt/sda1/tmp/test"},"VolumesRW":{"/test":true}}
|
330
|
+
http_version:
|
331
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
332
|
+
- request:
|
333
|
+
method: get
|
334
|
+
uri: "<DOCKER_HOST>/v1.16/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/json"
|
335
|
+
body:
|
336
|
+
encoding: US-ASCII
|
337
|
+
string: ''
|
338
|
+
headers:
|
339
|
+
User-Agent:
|
340
|
+
- Swipely/Docker-API 1.20.0
|
341
|
+
Content-Type:
|
342
|
+
- text/plain
|
343
|
+
response:
|
344
|
+
status:
|
345
|
+
code: 200
|
346
|
+
message:
|
347
|
+
headers:
|
348
|
+
Content-Type:
|
349
|
+
- application/json
|
350
|
+
Date:
|
351
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
352
|
+
body:
|
353
|
+
encoding: UTF-8
|
354
|
+
string: |
|
355
|
+
{"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":"e724885676e7","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":null,"OpenStdin":false,"PortSpecs":null,"StdinOnce":false,"Tty":false,"User":"","Volumes":null,"WorkingDir":""},"Created":"2015-03-31T20:20:49.429686833Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":["/tmp/test:/test"],"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":[],"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":[]},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/hosts","Id":"e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/volumes","NetworkSettings":{"Bridge":"docker0","Gateway":"172.17.42.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.176","IPPrefixLen":16,"IPv6Gateway":"","LinkLocalIPv6Address":"fe80::42:acff:fe11:b0","LinkLocalIPv6PrefixLen":64,"MacAddress":"02:42:ac:11:00:b0","PortMapping":null,"Ports":{"80/tcp":null}},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":0,"FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":false,"Paused":false,"Pid":11117,"Restarting":false,"Running":true,"StartedAt":"2015-03-31T20:20:49.785091726Z"},"Volumes":{"/test":"/mnt/sda1/tmp/test"},"VolumesRW":{"/test":true}}
|
356
|
+
http_version:
|
357
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
358
|
+
- request:
|
359
|
+
method: get
|
360
|
+
uri: "<DOCKER_HOST>/v1.16/containers/volumes/json"
|
361
|
+
body:
|
362
|
+
encoding: US-ASCII
|
363
|
+
string: ''
|
364
|
+
headers:
|
365
|
+
User-Agent:
|
366
|
+
- Swipely/Docker-API 1.20.0
|
367
|
+
Content-Type:
|
368
|
+
- text/plain
|
369
|
+
response:
|
370
|
+
status:
|
371
|
+
code: 200
|
372
|
+
message:
|
373
|
+
headers:
|
374
|
+
Content-Type:
|
375
|
+
- application/json
|
376
|
+
Date:
|
377
|
+
- Tue, 31 Mar 2015 20:20:49 GMT
|
378
|
+
body:
|
379
|
+
encoding: UTF-8
|
380
|
+
string: |
|
381
|
+
{"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":"e724885676e7","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MacAddress":"","Memory":0,"MemorySwap":0,"NetworkDisabled":false,"OnBuild":null,"OpenStdin":false,"PortSpecs":null,"StdinOnce":false,"Tty":false,"User":"","Volumes":null,"WorkingDir":""},"Created":"2015-03-31T20:20:49.429686833Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":["/tmp/test:/test"],"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":[],"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":[]},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/hosts","Id":"e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/volumes","NetworkSettings":{"Bridge":"docker0","Gateway":"172.17.42.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.176","IPPrefixLen":16,"IPv6Gateway":"","LinkLocalIPv6Address":"fe80::42:acff:fe11:b0","LinkLocalIPv6PrefixLen":64,"MacAddress":"02:42:ac:11:00:b0","PortMapping":null,"Ports":{"80/tcp":null}},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":0,"FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":false,"Paused":false,"Pid":11117,"Restarting":false,"Running":true,"StartedAt":"2015-03-31T20:20:49.785091726Z"},"Volumes":{"/test":"/mnt/sda1/tmp/test"},"VolumesRW":{"/test":true}}
|
382
|
+
http_version:
|
383
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
384
|
+
- request:
|
385
|
+
method: post
|
386
|
+
uri: "<DOCKER_HOST>/v1.16/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8/kill"
|
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: 204
|
398
|
+
message:
|
399
|
+
headers:
|
400
|
+
Date:
|
401
|
+
- Tue, 31 Mar 2015 20:20:50 GMT
|
402
|
+
body:
|
403
|
+
encoding: UTF-8
|
404
|
+
string: ''
|
405
|
+
http_version:
|
406
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
407
|
+
- request:
|
408
|
+
method: delete
|
409
|
+
uri: "<DOCKER_HOST>/v1.16/containers/e724885676e76be916c830a571f3cdee1ca58898ad8005275bb1cec60c815fb8"
|
410
|
+
body:
|
411
|
+
encoding: US-ASCII
|
412
|
+
string: ''
|
413
|
+
headers:
|
414
|
+
User-Agent:
|
415
|
+
- Swipely/Docker-API 1.20.0
|
416
|
+
Content-Type:
|
417
|
+
- text/plain
|
418
|
+
response:
|
419
|
+
status:
|
420
|
+
code: 204
|
421
|
+
message:
|
422
|
+
headers:
|
423
|
+
Date:
|
424
|
+
- Tue, 31 Mar 2015 20:20:50 GMT
|
425
|
+
body:
|
426
|
+
encoding: UTF-8
|
427
|
+
string: ''
|
428
|
+
http_version:
|
429
|
+
recorded_at: Tue, 31 Mar 2015 20:20:49 GMT
|
430
|
+
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.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Your Name Here
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -231,6 +231,7 @@ files:
|
|
231
231
|
- spec/data/tagandpath.json
|
232
232
|
- spec/data/tiny-image.tar
|
233
233
|
- spec/data/volumes.json
|
234
|
+
- spec/data/volumes_from.json
|
234
235
|
- spec/spec_helper.rb
|
235
236
|
- spec/support/bigrig_vcr
|
236
237
|
- spec/support/vcr.rb
|
@@ -271,6 +272,7 @@ files:
|
|
271
272
|
- spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_multiple_containers/spins_up_multiple_containers.yml
|
272
273
|
- spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_one_container/should_spin_up_a_single_container.yml
|
273
274
|
- spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_one_container/when_a_dead_container_exists/should_remove_existing_containers.yml
|
275
|
+
- spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_volumes/should_pass_volumes_to_the_right_container.yml
|
274
276
|
- spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_volumes_from/should_pass_volumes_from_to_the_right_container.yml
|
275
277
|
- spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_volumes_from/starts_the_dependant_container_last.yml
|
276
278
|
- spec/vcr/Bigrig_RunAction/_perform/when_activating_profiles_that_do_not_exist/ignores_the_missing_profile.yml
|