bigrig 0.0.0 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +20 -0
  5. data/.travis.yml +3 -0
  6. data/CHANGELOG.md +19 -0
  7. data/Gemfile +2 -0
  8. data/Gemfile.lock +84 -0
  9. data/LICENSE +28 -0
  10. data/README.md +191 -0
  11. data/Rakefile +10 -0
  12. data/bigrig.gemspec +29 -0
  13. data/bin/bigrig +113 -0
  14. data/lib/bigrig/actions/destroy_action.rb +21 -0
  15. data/lib/bigrig/actions/dev_action.rb +19 -0
  16. data/lib/bigrig/actions/log_action.rb +45 -0
  17. data/lib/bigrig/actions/run_action.rb +14 -0
  18. data/lib/bigrig/actions/ship_action.rb +51 -0
  19. data/lib/bigrig/actions.rb +5 -0
  20. data/lib/bigrig/dependency_graph.rb +21 -0
  21. data/lib/bigrig/descriptor.rb +43 -0
  22. data/lib/bigrig/docker_adapter.rb +129 -0
  23. data/lib/bigrig/models/application.rb +22 -0
  24. data/lib/bigrig/models/base_model.rb +7 -0
  25. data/lib/bigrig/models/container.rb +40 -0
  26. data/lib/bigrig/models.rb +3 -0
  27. data/lib/bigrig/output_parser.rb +52 -0
  28. data/lib/bigrig/runner.rb +94 -0
  29. data/lib/bigrig/version.rb +3 -0
  30. data/lib/bigrig.rb +8 -0
  31. data/spec/bigrig/actions/destroy_action_spec.rb +55 -0
  32. data/spec/bigrig/actions/dev_action_spec.rb +17 -0
  33. data/spec/bigrig/actions/log_action_spec.rb +33 -0
  34. data/spec/bigrig/actions/run_action_spec.rb +270 -0
  35. data/spec/bigrig/actions/ship_action_spec.rb +82 -0
  36. data/spec/bigrig/dependency_graph_spec.rb +19 -0
  37. data/spec/bigrig/descriptor_spec.rb +56 -0
  38. data/spec/bigrig/docker_adapter_spec.rb +409 -0
  39. data/spec/bigrig/models/application_spec.rb +32 -0
  40. data/spec/bigrig/models/container_spec.rb +115 -0
  41. data/spec/bigrig/output_parser_spec.rb +71 -0
  42. data/spec/bigrig_spec.rb +249 -0
  43. data/spec/data/addscontainer.json +24 -0
  44. data/spec/data/build/Dockerfile +2 -0
  45. data/spec/data/build/test +0 -0
  46. data/spec/data/dev.json +26 -0
  47. data/spec/data/duplicate.json +13 -0
  48. data/spec/data/env.json +12 -0
  49. data/spec/data/hosts_ip.json +12 -0
  50. data/spec/data/hosts_name.json +11 -0
  51. data/spec/data/links.json +13 -0
  52. data/spec/data/log.json +8 -0
  53. data/spec/data/multiple.json +13 -0
  54. data/spec/data/path.json +5 -0
  55. data/spec/data/ports.json +9 -0
  56. data/spec/data/profiles.json +24 -0
  57. data/spec/data/ship.json +5 -0
  58. data/spec/data/single.json +8 -0
  59. data/spec/data/tagandpath.json +24 -0
  60. data/spec/data/tiny-image.tar +0 -0
  61. data/spec/data/volumes.json +13 -0
  62. data/spec/spec_helper.rb +104 -0
  63. data/spec/support/bigrig_vcr +8 -0
  64. data/spec/support/vcr.rb +15 -0
  65. data/spec/vcr/Bigrig_DestroyAction/_perform/given_json_with_a_single_container/and_the_container_has_exited/should_remove_the_container.yml +392 -0
  66. data/spec/vcr/Bigrig_DestroyAction/_perform/given_json_with_a_single_container/and_the_container_is_running/kills_and_removes_the_container.yml +418 -0
  67. data/spec/vcr/Bigrig_DockerAdapter/_build/builds_the_given_directory.yml +63 -0
  68. data/spec/vcr/Bigrig_DockerAdapter/_build/passes_build_input_to_a_block.yml +35 -0
  69. data/spec/vcr/Bigrig_DockerAdapter/_container_exists_/when_the_container_does_not_exist/is_false.yml +115 -0
  70. data/spec/vcr/Bigrig_DockerAdapter/_container_exists_/when_the_container_exists/is_true.yml +82 -0
  71. data/spec/vcr/Bigrig_DockerAdapter/_image_id_by_tag/when_the_image_does_not_exist/raise_a_ImageNotFoundError.yml +172 -0
  72. data/spec/vcr/Bigrig_DockerAdapter/_image_id_by_tag/when_the_image_exists/returns_the_image_id.yml +148 -0
  73. data/spec/vcr/Bigrig_DockerAdapter/_kill/given_the_container_does_not_exist/should_raise_an_error.yml +115 -0
  74. data/spec/vcr/Bigrig_DockerAdapter/_kill/given_the_container_is_running/should_kill_the_container.yml +200 -0
  75. data/spec/vcr/Bigrig_DockerAdapter/_logs/streams_logs_to_a_block.yml +163 -0
  76. data/spec/vcr/Bigrig_DockerAdapter/_pull/given_a_block_to_capture_output/should_capture_output.yml +64 -0
  77. data/spec/vcr/Bigrig_DockerAdapter/_pull/given_the_repo_does_not_exist/raises_a_RepoNotFoundError.yml +30 -0
  78. data/spec/vcr/Bigrig_DockerAdapter/_pull/given_the_repo_exists/returns_the_image_id.yml +92 -0
  79. data/spec/vcr/Bigrig_DockerAdapter/_push/given_credentials/will_pass_login_and_password.yml +254 -0
  80. data/spec/vcr/Bigrig_DockerAdapter/_push/should_push_the_image.yml +482 -0
  81. data/spec/vcr/Bigrig_DockerAdapter/_remove_container/when_the_container_does_not_exist/raises_a_ContainerNotFoundError.yml +227 -0
  82. data/spec/vcr/Bigrig_DockerAdapter/_remove_container/when_the_container_exists/should_remove_the_container.yml +222 -0
  83. data/spec/vcr/Bigrig_DockerAdapter/_remove_container/when_the_container_is_running/raises_a_ContainerRunningError.yml +80 -0
  84. data/spec/vcr/Bigrig_DockerAdapter/_remove_image/when_the_image_doesnt_exist/raises_an_error.yml +115 -0
  85. data/spec/vcr/Bigrig_DockerAdapter/_remove_image/when_the_image_exists/removes_the_image.yml +199 -0
  86. data/spec/vcr/Bigrig_DockerAdapter/_run/given_an_image_id_that_exists/and_a_name/starts_the_container_with_the_right_name.yml +204 -0
  87. data/spec/vcr/Bigrig_DockerAdapter/_run/given_an_image_id_that_exists/and_a_name_and_env_variables/starts_the_container_with_env_set.yml +204 -0
  88. data/spec/vcr/Bigrig_DockerAdapter/_run/given_an_image_id_that_exists/and_a_name_and_ports/starts_the_container_with_ports_exposed.yml +230 -0
  89. data/spec/vcr/Bigrig_DockerAdapter/_running_/when_the_container_does_not_exist/returns_false.yml +115 -0
  90. data/spec/vcr/Bigrig_DockerAdapter/_running_/when_the_container_is_not_running/returns_false.yml +82 -0
  91. data/spec/vcr/Bigrig_DockerAdapter/_running_/when_the_container_is_running/returns_true.yml +103 -0
  92. data/spec/vcr/Bigrig_DockerAdapter/_tag/should_tag_the_image.yml +290 -0
  93. data/spec/vcr/Bigrig_LogAction/_perform/follows_the_log.yml +163 -0
  94. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_a_path/builds_the_image_before_starting_it.yml +310 -0
  95. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_hosts_by_ip/should_pass_hosts_to_container.yml +430 -0
  96. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_hosts_by_name/should_lookup_ips_for_hosts_with_a_hostname.yml +430 -0
  97. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_links/should_pass_links_to_the_right_container.yml +805 -0
  98. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_multiple_containers/launches_both_containers_in_parallel.yml +731 -0
  99. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_multiple_containers/spins_up_multiple_containers.yml +805 -0
  100. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_one_container/should_spin_up_a_single_container.yml +404 -0
  101. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_one_container/when_a_dead_container_exists/should_remove_existing_containers.yml +329 -0
  102. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_volumes_from/should_pass_volumes_from_to_the_right_container.yml +805 -0
  103. data/spec/vcr/Bigrig_RunAction/_perform/given_a_file_with_volumes_from/starts_the_dependant_container_last.yml +731 -0
  104. data/spec/vcr/Bigrig_RunAction/_perform/when_activating_profiles_that_do_not_exist/ignores_the_missing_profile.yml +409 -0
  105. data/spec/vcr/Bigrig_RunAction/_perform/with_a_file_with_active_profiles/uses_the_overridden_image.yml +432 -0
  106. data/spec/vcr/bigrig/destroy/spec/data/single_json/kills_the_container.yml +166 -0
  107. data/spec/vcr/bigrig/dev/spec/data/dev_json/activates_the_dev_profile.yml +37 -0
  108. data/spec/vcr/bigrig/dev/spec/data/dev_json/destroys_containers_on_exit.yml +227 -0
  109. data/spec/vcr/bigrig/dev/spec/data/dev_json/starts_the_containers.yml +107 -0
  110. data/spec/vcr/bigrig/logs/spec/data/log_json/tails_the_logs.yml +163 -0
  111. data/spec/vcr/bigrig/run/spec/data/profiles_json_-p_qa/leaves_existing_env_values_alone.yml +110 -0
  112. data/spec/vcr/bigrig/run/spec/data/profiles_json_-p_qa/overrides_the_env.yml +110 -0
  113. data/spec/vcr/bigrig/run/spec/data/profiles_json_-p_qa/overrides_the_tag.yml +103 -0
  114. data/spec/vcr/bigrig/run/spec/data/single_json/sends_the_name_of_the_container_to_stdout.yml +75 -0
  115. data/spec/vcr/bigrig/run/spec/data/single_json/starts_the_container.yml +101 -0
  116. data/spec/vcr/bigrig/ship/spec/data/ship_json/with_a_version/-c/cleans_the_image_when_its_done.yml +212 -0
  117. data/spec/vcr/bigrig/ship/spec/data/ship_json/with_a_version/builds_and_pushes_the_image.yml +128 -0
  118. data/spec/vcr/bigrig_bin_bigrig_destroy_spec/data/single_json_kills_the_container.yml +179 -0
  119. data/spec/vcr/bigrig_bin_bigrig_dev_spec/data/dev_json_activates_the_dev_profile.yml +1068 -0
  120. data/spec/vcr/bigrig_bin_bigrig_dev_spec/data/dev_json_destroys_containers_on_exit.yml +1070 -0
  121. data/spec/vcr/bigrig_bin_bigrig_dev_spec/data/dev_json_starts_the_containers.yml +1068 -0
  122. data/spec/vcr/bigrig_bin_bigrig_dev_spec/data/dev_json_tails_the_logs.yml +1075 -0
  123. data/spec/vcr/bigrig_bin_bigrig_logs_spec/data/log_json_tails_the_logs.yml +69 -0
  124. data/spec/vcr/bigrig_bin_bigrig_run_spec/data/profiles_json_-p_qa_leaves_existing_env_values_alone.yml +306 -0
  125. data/spec/vcr/bigrig_bin_bigrig_run_spec/data/profiles_json_-p_qa_overrides_the_env.yml +306 -0
  126. data/spec/vcr/bigrig_bin_bigrig_run_spec/data/profiles_json_-p_qa_overrides_the_tag.yml +306 -0
  127. data/spec/vcr/bigrig_bin_bigrig_run_spec/data/single_json_sends_the_name_of_the_container_to_stdout.yml +306 -0
  128. data/spec/vcr/bigrig_bin_bigrig_run_spec/data/single_json_starts_the_container.yml +306 -0
  129. data/spec/vcr/bigrig_bin_bigrig_ship_spec/data/ship_json_with_a_version_-c_cleans_the_image_when_its_done.yml +335 -0
  130. data/spec/vcr/bigrig_bin_bigrig_ship_spec/data/ship_json_with_a_version_builds_and_pushes_the_image.yml +285 -0
  131. data/test/dev/shipper.json +24 -0
  132. data/test/logs/bigrig.json +6 -0
  133. data/test/logs/container1/Dockerfile +4 -0
  134. data/test/logs/container1/run.sh +7 -0
  135. data/test/logs/container2/Dockerfile +4 -0
  136. data/test/logs/container2/run.sh +7 -0
  137. data/test/ship/bigrig-1.2.3.json +1 -0
  138. data/test/ship/bigrig.json +5 -0
  139. data/test/ship/registry.json +11 -0
  140. data/test/ship/ship/Dockerfile +4 -0
  141. data/test/ship/ship/run.sh +6 -0
  142. data/test/volumes_from/exports_volumes/Dockerfile +8 -0
  143. data/test/volumes_from/exports_volumes/index.html +8 -0
  144. data/test/volumes_from/exports_volumes/run.sh +7 -0
  145. data/test/volumes_from/shipper.json +14 -0
  146. metadata +278 -8
@@ -0,0 +1,432 @@
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, 12 Mar 2015 21:37:38 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: Thu, 12 Mar 2015 21:37:40 GMT
31
+ - request:
32
+ method: get
33
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:38 GMT
51
+ Content-Length:
52
+ - '28'
53
+ body:
54
+ encoding: UTF-8
55
+ string: |
56
+ No such container: profiles
57
+ http_version:
58
+ recorded_at: Thu, 12 Mar 2015 21:37:40 GMT
59
+ - request:
60
+ method: get
61
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:38 GMT
79
+ Content-Length:
80
+ - '28'
81
+ body:
82
+ encoding: UTF-8
83
+ string: |
84
+ No such container: profiles
85
+ http_version:
86
+ recorded_at: Thu, 12 Mar 2015 21:37:40 GMT
87
+ - request:
88
+ method: get
89
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:38 GMT
107
+ Content-Length:
108
+ - '28'
109
+ body:
110
+ encoding: UTF-8
111
+ string: |
112
+ No such container: profiles
113
+ http_version:
114
+ recorded_at: Thu, 12 Mar 2015 21:37:40 GMT
115
+ - request:
116
+ method: get
117
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:38 GMT
135
+ Content-Length:
136
+ - '28'
137
+ body:
138
+ encoding: UTF-8
139
+ string: |
140
+ No such container: profiles
141
+ http_version:
142
+ recorded_at: Thu, 12 Mar 2015 21:37:40 GMT
143
+ - request:
144
+ method: get
145
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:38 GMT
163
+ Content-Length:
164
+ - '28'
165
+ body:
166
+ encoding: UTF-8
167
+ string: |
168
+ No such container: profiles
169
+ http_version:
170
+ recorded_at: Thu, 12 Mar 2015 21:37:40 GMT
171
+ - request:
172
+ method: get
173
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:38 GMT
191
+ Content-Length:
192
+ - '28'
193
+ body:
194
+ encoding: UTF-8
195
+ string: |
196
+ No such container: profiles
197
+ http_version:
198
+ recorded_at: Thu, 12 Mar 2015 21:37:40 GMT
199
+ - request:
200
+ method: get
201
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:38 GMT
219
+ Content-Length:
220
+ - '28'
221
+ body:
222
+ encoding: UTF-8
223
+ string: |
224
+ No such container: profiles
225
+ http_version:
226
+ recorded_at: Thu, 12 Mar 2015 21:37:40 GMT
227
+ - request:
228
+ method: get
229
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:38 GMT
247
+ Content-Length:
248
+ - '28'
249
+ body:
250
+ encoding: UTF-8
251
+ string: |
252
+ No such container: profiles
253
+ http_version:
254
+ recorded_at: Thu, 12 Mar 2015 21:37:41 GMT
255
+ - request:
256
+ method: post
257
+ uri: "<DOCKER_HOST>/v1.16/containers/create?name=profiles"
258
+ body:
259
+ encoding: UTF-8
260
+ string: '{"Env":["NAME1=VALUE1A","NAME2=VALUE2"],"Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","ExposedPorts":{"80/tcp":{}}}'
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, 12 Mar 2015 21:37:38 GMT
275
+ Content-Length:
276
+ - '90'
277
+ body:
278
+ encoding: UTF-8
279
+ string: |
280
+ {"Id":"791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939","Warnings":null}
281
+ http_version:
282
+ recorded_at: Thu, 12 Mar 2015 21:37:41 GMT
283
+ - request:
284
+ method: post
285
+ uri: "<DOCKER_HOST>/v1.16/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939/start"
286
+ body:
287
+ encoding: UTF-8
288
+ string: '{"Links":[],"ExtraHosts":[],"PortBindings":{"80/tcp":[{"HostPort":"4567"}]},"VolumesFrom":[]}'
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, 12 Mar 2015 21:37:39 GMT
301
+ body:
302
+ encoding: UTF-8
303
+ string: ''
304
+ http_version:
305
+ recorded_at: Thu, 12 Mar 2015 21:37:41 GMT
306
+ - request:
307
+ method: get
308
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/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, 12 Mar 2015 21:37:39 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":["NAME1=VALUE1A","NAME2=VALUE2","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":"791f2f2c1e4b","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-12T21:37:38.794060475Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":null,"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":[],"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"4567"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":[]},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939/hosts","Id":"791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/profiles","NetworkSettings":{"Bridge":"docker0","Gateway":"172.17.42.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.2.92","IPPrefixLen":16,"IPv6Gateway":"","LinkLocalIPv6Address":"fe80::42:acff:fe11:25c","LinkLocalIPv6PrefixLen":64,"MacAddress":"02:42:ac:11:02:5c","PortMapping":null,"Ports":{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"4567"}]}},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":0,"FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":false,"Paused":false,"Pid":11615,"Restarting":false,"Running":true,"StartedAt":"2015-03-12T21:37:39.431586494Z"},"Volumes":{},"VolumesRW":{}}
330
+ http_version:
331
+ recorded_at: Thu, 12 Mar 2015 21:37:41 GMT
332
+ - request:
333
+ method: get
334
+ uri: "<DOCKER_HOST>/v1.16/images/hawknewton/show-env/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
+ - Thu, 12 Mar 2015 21:37:39 GMT
352
+ Content-Length:
353
+ - '1859'
354
+ body:
355
+ encoding: UTF-8
356
+ string: |
357
+ {"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}
358
+ http_version:
359
+ recorded_at: Thu, 12 Mar 2015 21:37:41 GMT
360
+ - request:
361
+ method: get
362
+ uri: "<DOCKER_HOST>/v1.16/containers/profiles/json"
363
+ body:
364
+ encoding: US-ASCII
365
+ string: ''
366
+ headers:
367
+ User-Agent:
368
+ - Swipely/Docker-API 1.20.0
369
+ Content-Type:
370
+ - text/plain
371
+ response:
372
+ status:
373
+ code: 200
374
+ message:
375
+ headers:
376
+ Content-Type:
377
+ - application/json
378
+ Date:
379
+ - Thu, 12 Mar 2015 21:37:39 GMT
380
+ body:
381
+ encoding: UTF-8
382
+ string: |
383
+ {"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":["NAME1=VALUE1A","NAME2=VALUE2","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":"791f2f2c1e4b","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-12T21:37:38.794060475Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":null,"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":[],"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"4567"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":[]},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939/hosts","Id":"791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/profiles","NetworkSettings":{"Bridge":"docker0","Gateway":"172.17.42.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.2.92","IPPrefixLen":16,"IPv6Gateway":"","LinkLocalIPv6Address":"fe80::42:acff:fe11:25c","LinkLocalIPv6PrefixLen":64,"MacAddress":"02:42:ac:11:02:5c","PortMapping":null,"Ports":{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"4567"}]}},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":0,"FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":false,"Paused":false,"Pid":11615,"Restarting":false,"Running":true,"StartedAt":"2015-03-12T21:37:39.431586494Z"},"Volumes":{},"VolumesRW":{}}
384
+ http_version:
385
+ recorded_at: Thu, 12 Mar 2015 21:37:41 GMT
386
+ - request:
387
+ method: post
388
+ uri: "<DOCKER_HOST>/v1.16/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939/kill"
389
+ body:
390
+ encoding: US-ASCII
391
+ string: ''
392
+ headers:
393
+ User-Agent:
394
+ - Swipely/Docker-API 1.20.0
395
+ Content-Type:
396
+ - text/plain
397
+ response:
398
+ status:
399
+ code: 204
400
+ message:
401
+ headers:
402
+ Date:
403
+ - Thu, 12 Mar 2015 21:37:39 GMT
404
+ body:
405
+ encoding: UTF-8
406
+ string: ''
407
+ http_version:
408
+ recorded_at: Thu, 12 Mar 2015 21:37:42 GMT
409
+ - request:
410
+ method: delete
411
+ uri: "<DOCKER_HOST>/v1.16/containers/791f2f2c1e4b766a4934d3a53551ee0dff61e840ea9a109ff1ddd5130438b939"
412
+ body:
413
+ encoding: US-ASCII
414
+ string: ''
415
+ headers:
416
+ User-Agent:
417
+ - Swipely/Docker-API 1.20.0
418
+ Content-Type:
419
+ - text/plain
420
+ response:
421
+ status:
422
+ code: 204
423
+ message:
424
+ headers:
425
+ Date:
426
+ - Thu, 12 Mar 2015 21:37:39 GMT
427
+ body:
428
+ encoding: UTF-8
429
+ string: ''
430
+ http_version:
431
+ recorded_at: Thu, 12 Mar 2015 21:37:42 GMT
432
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,166 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: "<DOCKER_HOST>/v1.16/containers/create?name=single-test"
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"Image":"hawknewton/show-env"}'
9
+ headers:
10
+ User-Agent:
11
+ - Swipely/Docker-API 1.20.0
12
+ Content-Type:
13
+ - application/json
14
+ response:
15
+ status:
16
+ code: 201
17
+ message:
18
+ headers:
19
+ Content-Type:
20
+ - application/json
21
+ Date:
22
+ - Thu, 12 Mar 2015 21:38:41 GMT
23
+ Content-Length:
24
+ - '90'
25
+ body:
26
+ encoding: UTF-8
27
+ string: |
28
+ {"Id":"7e4d3c1e699d2ecae3de9cdc1d54ffddcea59fb40d977e71cd1652f04fe05f52","Warnings":null}
29
+ http_version:
30
+ recorded_at: Thu, 12 Mar 2015 21:38:43 GMT
31
+ - request:
32
+ method: post
33
+ uri: "<DOCKER_HOST>/v1.16/containers/7e4d3c1e699d2ecae3de9cdc1d54ffddcea59fb40d977e71cd1652f04fe05f52/start"
34
+ body:
35
+ encoding: UTF-8
36
+ string: "{}"
37
+ headers:
38
+ User-Agent:
39
+ - Swipely/Docker-API 1.20.0
40
+ Content-Type:
41
+ - application/json
42
+ response:
43
+ status:
44
+ code: 204
45
+ message:
46
+ headers:
47
+ Date:
48
+ - Thu, 12 Mar 2015 21:38:42 GMT
49
+ body:
50
+ encoding: UTF-8
51
+ string: ''
52
+ http_version:
53
+ recorded_at: Thu, 12 Mar 2015 21:38:44 GMT
54
+ - request:
55
+ method: get
56
+ uri: "<DOCKER_HOST>/v1.16/containers/single-test/json"
57
+ body:
58
+ encoding: US-ASCII
59
+ string: ''
60
+ headers:
61
+ User-Agent:
62
+ - Swipely/Docker-API 1.20.0
63
+ Content-Type:
64
+ - text/plain
65
+ response:
66
+ status:
67
+ code: 404
68
+ message:
69
+ headers:
70
+ Content-Type:
71
+ - text/plain; charset=utf-8
72
+ Date:
73
+ - Thu, 12 Mar 2015 21:38:43 GMT
74
+ Content-Length:
75
+ - '31'
76
+ body:
77
+ encoding: UTF-8
78
+ string: |
79
+ No such container: single-test
80
+ http_version:
81
+ recorded_at: Thu, 12 Mar 2015 21:38:45 GMT
82
+ - request:
83
+ method: get
84
+ uri: "<DOCKER_HOST>/v1.16/containers/single-test/json"
85
+ body:
86
+ encoding: US-ASCII
87
+ string: ''
88
+ headers:
89
+ User-Agent:
90
+ - Swipely/Docker-API 1.20.0
91
+ Content-Type:
92
+ - text/plain
93
+ response:
94
+ status:
95
+ code: 404
96
+ message:
97
+ headers:
98
+ Content-Type:
99
+ - text/plain; charset=utf-8
100
+ Date:
101
+ - Thu, 12 Mar 2015 21:38:43 GMT
102
+ Content-Length:
103
+ - '31'
104
+ body:
105
+ encoding: UTF-8
106
+ string: |
107
+ No such container: single-test
108
+ http_version:
109
+ recorded_at: Thu, 12 Mar 2015 21:38:45 GMT
110
+ - request:
111
+ method: get
112
+ uri: "<DOCKER_HOST>/v1.16/containers/single-test/json"
113
+ body:
114
+ encoding: US-ASCII
115
+ string: ''
116
+ headers:
117
+ User-Agent:
118
+ - Swipely/Docker-API 1.20.0
119
+ Content-Type:
120
+ - text/plain
121
+ response:
122
+ status:
123
+ code: 404
124
+ message:
125
+ headers:
126
+ Content-Type:
127
+ - text/plain; charset=utf-8
128
+ Date:
129
+ - Thu, 12 Mar 2015 21:38:43 GMT
130
+ Content-Length:
131
+ - '31'
132
+ body:
133
+ encoding: UTF-8
134
+ string: |
135
+ No such container: single-test
136
+ http_version:
137
+ recorded_at: Thu, 12 Mar 2015 21:38:45 GMT
138
+ - request:
139
+ method: get
140
+ uri: "<DOCKER_HOST>/v1.16/containers/single-test/json"
141
+ body:
142
+ encoding: US-ASCII
143
+ string: ''
144
+ headers:
145
+ User-Agent:
146
+ - Swipely/Docker-API 1.20.0
147
+ Content-Type:
148
+ - text/plain
149
+ response:
150
+ status:
151
+ code: 404
152
+ message:
153
+ headers:
154
+ Content-Type:
155
+ - text/plain; charset=utf-8
156
+ Date:
157
+ - Thu, 12 Mar 2015 21:38:43 GMT
158
+ Content-Length:
159
+ - '31'
160
+ body:
161
+ encoding: UTF-8
162
+ string: |
163
+ No such container: single-test
164
+ http_version:
165
+ recorded_at: Thu, 12 Mar 2015 21:38:45 GMT
166
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,37 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://192.168.59.103:4568/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: "/OK"
20
+ headers:
21
+ Content-Type:
22
+ - text/plain
23
+ body:
24
+ encoding: UTF-8
25
+ string: |-
26
+ BUNDLE_APP_CONFIG=/usr/local/bundle
27
+ GEM_HOME=/usr/local/bundle
28
+ HOME=/root
29
+ HOSTNAME=d6a635cf5003
30
+ PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
31
+ PROFILE=dev
32
+ PWD=/
33
+ RUBY_MAJOR=2.1
34
+ RUBY_VERSION=2.1.3
35
+ http_version:
36
+ recorded_at: Thu, 12 Mar 2015 21:38:20 GMT
37
+ recorded_with: VCR 2.9.3