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,392 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: "<DOCKER_HOST>/v1.16/images/create?fromImage=hawknewton%2Fshow-env"
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:18 GMT
23
+ body:
24
+ encoding: UTF-8
25
+ string: "{\"status\":\"Pulling repository hawknewton/show-env\"}\r\n{\"status\":\"Pulling
26
+ image (latest) from hawknewton/show-env\",\"progressDetail\":{},\"id\":\"b9c5be3a918d\"}{\"status\":\"Pulling
27
+ image (latest) from hawknewton/show-env, endpoint: https://registry-1.docker.io/v1/\",\"progressDetail\":{},\"id\":\"b9c5be3a918d\"}{\"status\":\"Pulling
28
+ dependent layers\",\"progressDetail\":{},\"id\":\"b9c5be3a918d\"}{\"status\":\"Download
29
+ complete\",\"progressDetail\":{},\"id\":\"511136ea3c5a\"}{\"status\":\"Download
30
+ complete\",\"progressDetail\":{},\"id\":\"50215b109eda\"}{\"status\":\"Download
31
+ complete\",\"progressDetail\":{},\"id\":\"53f380325ee9\"}{\"status\":\"Download
32
+ complete\",\"progressDetail\":{},\"id\":\"71e62a8beff3\"}{\"status\":\"Download
33
+ complete\",\"progressDetail\":{},\"id\":\"7d2b41d8b634\"}{\"status\":\"Download
34
+ complete\",\"progressDetail\":{},\"id\":\"eac5dcb90974\"}{\"status\":\"Download
35
+ complete\",\"progressDetail\":{},\"id\":\"4641ba92cd87\"}{\"status\":\"Download
36
+ complete\",\"progressDetail\":{},\"id\":\"49d1d522cd44\"}{\"status\":\"Download
37
+ complete\",\"progressDetail\":{},\"id\":\"4164e8505679\"}{\"status\":\"Download
38
+ complete\",\"progressDetail\":{},\"id\":\"fd3901892100\"}{\"status\":\"Download
39
+ complete\",\"progressDetail\":{},\"id\":\"aa82a409e225\"}{\"status\":\"Download
40
+ complete\",\"progressDetail\":{},\"id\":\"4e2f12b9e246\"}{\"status\":\"Download
41
+ complete\",\"progressDetail\":{},\"id\":\"a490c0bc4c17\"}{\"status\":\"Download
42
+ complete\",\"progressDetail\":{},\"id\":\"30c479473225\"}{\"status\":\"Download
43
+ complete\",\"progressDetail\":{},\"id\":\"c18ee8e5eefa\"}{\"status\":\"Download
44
+ complete\",\"progressDetail\":{},\"id\":\"b020883398e6\"}{\"status\":\"Download
45
+ complete\",\"progressDetail\":{},\"id\":\"4929b61a5fda\"}{\"status\":\"Download
46
+ complete\",\"progressDetail\":{},\"id\":\"b9c5be3a918d\"}{\"status\":\"Download
47
+ complete\",\"progressDetail\":{},\"id\":\"b9c5be3a918d\"}{\"status\":\"Status:
48
+ Image is up to date for hawknewton/show-env\"}\r\n"
49
+ http_version:
50
+ recorded_at: Thu, 12 Mar 2015 21:37:21 GMT
51
+ - request:
52
+ method: post
53
+ uri: "<DOCKER_HOST>/v1.16/containers/create?name=single-test"
54
+ body:
55
+ encoding: UTF-8
56
+ string: '{"Image":"b9c5be3a918d"}'
57
+ headers:
58
+ User-Agent:
59
+ - Swipely/Docker-API 1.20.0
60
+ Content-Type:
61
+ - application/json
62
+ response:
63
+ status:
64
+ code: 201
65
+ message:
66
+ headers:
67
+ Content-Type:
68
+ - application/json
69
+ Date:
70
+ - Thu, 12 Mar 2015 21:37:19 GMT
71
+ Content-Length:
72
+ - '90'
73
+ body:
74
+ encoding: UTF-8
75
+ string: |
76
+ {"Id":"072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e","Warnings":null}
77
+ http_version:
78
+ recorded_at: Thu, 12 Mar 2015 21:37:21 GMT
79
+ - request:
80
+ method: post
81
+ uri: "<DOCKER_HOST>/v1.16/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/start"
82
+ body:
83
+ encoding: UTF-8
84
+ string: "{}"
85
+ headers:
86
+ User-Agent:
87
+ - Swipely/Docker-API 1.20.0
88
+ Content-Type:
89
+ - application/json
90
+ response:
91
+ status:
92
+ code: 204
93
+ message:
94
+ headers:
95
+ Date:
96
+ - Thu, 12 Mar 2015 21:37:19 GMT
97
+ body:
98
+ encoding: UTF-8
99
+ string: ''
100
+ http_version:
101
+ recorded_at: Thu, 12 Mar 2015 21:37:21 GMT
102
+ - request:
103
+ method: post
104
+ uri: "<DOCKER_HOST>/v1.16/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/kill"
105
+ body:
106
+ encoding: US-ASCII
107
+ string: ''
108
+ headers:
109
+ User-Agent:
110
+ - Swipely/Docker-API 1.20.0
111
+ Content-Type:
112
+ - text/plain
113
+ response:
114
+ status:
115
+ code: 204
116
+ message:
117
+ headers:
118
+ Date:
119
+ - Thu, 12 Mar 2015 21:37:19 GMT
120
+ body:
121
+ encoding: UTF-8
122
+ string: ''
123
+ http_version:
124
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
125
+ - request:
126
+ method: get
127
+ uri: "<DOCKER_HOST>/v1.16/containers/single-test/json"
128
+ body:
129
+ encoding: US-ASCII
130
+ string: ''
131
+ headers:
132
+ User-Agent:
133
+ - Swipely/Docker-API 1.20.0
134
+ Content-Type:
135
+ - text/plain
136
+ response:
137
+ status:
138
+ code: 200
139
+ message:
140
+ headers:
141
+ Content-Type:
142
+ - application/json
143
+ Date:
144
+ - Thu, 12 Mar 2015 21:37:19 GMT
145
+ body:
146
+ encoding: UTF-8
147
+ string: |
148
+ {"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":"072c18d4c2c3","Image":"b9c5be3a918d","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:19.097251872Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":null,"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":null,"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":null,"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":null},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/hosts","Id":"072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/single-test","NetworkSettings":{"Bridge":"","Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"","IPPrefixLen":0,"IPv6Gateway":"","LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"MacAddress":"","PortMapping":null,"Ports":null},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":137,"FinishedAt":"2015-03-12T21:37:19.670433771Z","OOMKilled":false,"Paused":false,"Pid":0,"Restarting":false,"Running":false,"StartedAt":"2015-03-12T21:37:19.491848636Z"},"Volumes":{},"VolumesRW":{}}
149
+ http_version:
150
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
151
+ - request:
152
+ method: get
153
+ uri: "<DOCKER_HOST>/v1.16/containers/single-test/json"
154
+ body:
155
+ encoding: US-ASCII
156
+ string: ''
157
+ headers:
158
+ User-Agent:
159
+ - Swipely/Docker-API 1.20.0
160
+ Content-Type:
161
+ - text/plain
162
+ response:
163
+ status:
164
+ code: 200
165
+ message:
166
+ headers:
167
+ Content-Type:
168
+ - application/json
169
+ Date:
170
+ - Thu, 12 Mar 2015 21:37:19 GMT
171
+ body:
172
+ encoding: UTF-8
173
+ string: |
174
+ {"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":"072c18d4c2c3","Image":"b9c5be3a918d","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:19.097251872Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":null,"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":null,"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":null,"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":null},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/hosts","Id":"072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/single-test","NetworkSettings":{"Bridge":"","Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"","IPPrefixLen":0,"IPv6Gateway":"","LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"MacAddress":"","PortMapping":null,"Ports":null},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":137,"FinishedAt":"2015-03-12T21:37:19.670433771Z","OOMKilled":false,"Paused":false,"Pid":0,"Restarting":false,"Running":false,"StartedAt":"2015-03-12T21:37:19.491848636Z"},"Volumes":{},"VolumesRW":{}}
175
+ http_version:
176
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
177
+ - request:
178
+ method: get
179
+ uri: "<DOCKER_HOST>/v1.16/containers/single-test/json"
180
+ body:
181
+ encoding: US-ASCII
182
+ string: ''
183
+ headers:
184
+ User-Agent:
185
+ - Swipely/Docker-API 1.20.0
186
+ Content-Type:
187
+ - text/plain
188
+ response:
189
+ status:
190
+ code: 200
191
+ message:
192
+ headers:
193
+ Content-Type:
194
+ - application/json
195
+ Date:
196
+ - Thu, 12 Mar 2015 21:37:19 GMT
197
+ body:
198
+ encoding: UTF-8
199
+ string: |
200
+ {"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":"072c18d4c2c3","Image":"b9c5be3a918d","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:19.097251872Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":null,"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":null,"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":null,"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":null},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/hosts","Id":"072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/single-test","NetworkSettings":{"Bridge":"","Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"","IPPrefixLen":0,"IPv6Gateway":"","LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"MacAddress":"","PortMapping":null,"Ports":null},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":137,"FinishedAt":"2015-03-12T21:37:19.670433771Z","OOMKilled":false,"Paused":false,"Pid":0,"Restarting":false,"Running":false,"StartedAt":"2015-03-12T21:37:19.491848636Z"},"Volumes":{},"VolumesRW":{}}
201
+ http_version:
202
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
203
+ - request:
204
+ method: get
205
+ uri: "<DOCKER_HOST>/v1.16/containers/single-test/json"
206
+ body:
207
+ encoding: US-ASCII
208
+ string: ''
209
+ headers:
210
+ User-Agent:
211
+ - Swipely/Docker-API 1.20.0
212
+ Content-Type:
213
+ - text/plain
214
+ response:
215
+ status:
216
+ code: 200
217
+ message:
218
+ headers:
219
+ Content-Type:
220
+ - application/json
221
+ Date:
222
+ - Thu, 12 Mar 2015 21:37:19 GMT
223
+ body:
224
+ encoding: UTF-8
225
+ string: |
226
+ {"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":"072c18d4c2c3","Image":"b9c5be3a918d","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:19.097251872Z","Driver":"aufs","ExecDriver":"native-0.2","ExecIDs":null,"HostConfig":{"Binds":null,"CapAdd":null,"CapDrop":null,"ContainerIDFile":"","Devices":null,"Dns":null,"DnsSearch":null,"ExtraHosts":null,"IpcMode":"","Links":null,"LxcConf":null,"NetworkMode":"","PidMode":"","PortBindings":null,"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":null,"VolumesFrom":null},"HostnamePath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/hostname","HostsPath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/hosts","Id":"072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e","Image":"b9c5be3a918d80b0d898ed8eca3fc76f75c482b531238e539cb00f75bb4e12d2","MountLabel":"","Name":"/single-test","NetworkSettings":{"Bridge":"","Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"","IPPrefixLen":0,"IPv6Gateway":"","LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"MacAddress":"","PortMapping":null,"Ports":null},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/mnt/sda1/var/lib/docker/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/resolv.conf","RestartCount":0,"State":{"Error":"","ExitCode":137,"FinishedAt":"2015-03-12T21:37:19.670433771Z","OOMKilled":false,"Paused":false,"Pid":0,"Restarting":false,"Running":false,"StartedAt":"2015-03-12T21:37:19.491848636Z"},"Volumes":{},"VolumesRW":{}}
227
+ http_version:
228
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
229
+ - request:
230
+ method: delete
231
+ uri: "<DOCKER_HOST>/v1.16/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e"
232
+ body:
233
+ encoding: US-ASCII
234
+ string: ''
235
+ headers:
236
+ User-Agent:
237
+ - Swipely/Docker-API 1.20.0
238
+ Content-Type:
239
+ - text/plain
240
+ response:
241
+ status:
242
+ code: 204
243
+ message:
244
+ headers:
245
+ Date:
246
+ - Thu, 12 Mar 2015 21:37:19 GMT
247
+ body:
248
+ encoding: UTF-8
249
+ string: ''
250
+ http_version:
251
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
252
+ - request:
253
+ method: get
254
+ uri: "<DOCKER_HOST>/v1.16/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/json"
255
+ body:
256
+ encoding: US-ASCII
257
+ string: ''
258
+ headers:
259
+ User-Agent:
260
+ - Swipely/Docker-API 1.20.0
261
+ Content-Type:
262
+ - text/plain
263
+ response:
264
+ status:
265
+ code: 404
266
+ message:
267
+ headers:
268
+ Content-Type:
269
+ - text/plain; charset=utf-8
270
+ Date:
271
+ - Thu, 12 Mar 2015 21:37:19 GMT
272
+ Content-Length:
273
+ - '84'
274
+ body:
275
+ encoding: UTF-8
276
+ string: |
277
+ No such container: 072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e
278
+ http_version:
279
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
280
+ - request:
281
+ method: get
282
+ uri: "<DOCKER_HOST>/v1.16/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/json"
283
+ body:
284
+ encoding: US-ASCII
285
+ string: ''
286
+ headers:
287
+ User-Agent:
288
+ - Swipely/Docker-API 1.20.0
289
+ Content-Type:
290
+ - text/plain
291
+ response:
292
+ status:
293
+ code: 404
294
+ message:
295
+ headers:
296
+ Content-Type:
297
+ - text/plain; charset=utf-8
298
+ Date:
299
+ - Thu, 12 Mar 2015 21:37:19 GMT
300
+ Content-Length:
301
+ - '84'
302
+ body:
303
+ encoding: UTF-8
304
+ string: |
305
+ No such container: 072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e
306
+ http_version:
307
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
308
+ - request:
309
+ method: get
310
+ uri: "<DOCKER_HOST>/v1.16/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/json"
311
+ body:
312
+ encoding: US-ASCII
313
+ string: ''
314
+ headers:
315
+ User-Agent:
316
+ - Swipely/Docker-API 1.20.0
317
+ Content-Type:
318
+ - text/plain
319
+ response:
320
+ status:
321
+ code: 404
322
+ message:
323
+ headers:
324
+ Content-Type:
325
+ - text/plain; charset=utf-8
326
+ Date:
327
+ - Thu, 12 Mar 2015 21:37:19 GMT
328
+ Content-Length:
329
+ - '84'
330
+ body:
331
+ encoding: UTF-8
332
+ string: |
333
+ No such container: 072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e
334
+ http_version:
335
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
336
+ - request:
337
+ method: get
338
+ uri: "<DOCKER_HOST>/v1.16/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/json"
339
+ body:
340
+ encoding: US-ASCII
341
+ string: ''
342
+ headers:
343
+ User-Agent:
344
+ - Swipely/Docker-API 1.20.0
345
+ Content-Type:
346
+ - text/plain
347
+ response:
348
+ status:
349
+ code: 404
350
+ message:
351
+ headers:
352
+ Content-Type:
353
+ - text/plain; charset=utf-8
354
+ Date:
355
+ - Thu, 12 Mar 2015 21:37:20 GMT
356
+ Content-Length:
357
+ - '84'
358
+ body:
359
+ encoding: UTF-8
360
+ string: |
361
+ No such container: 072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e
362
+ http_version:
363
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
364
+ - request:
365
+ method: post
366
+ uri: "<DOCKER_HOST>/v1.16/containers/072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e/kill"
367
+ body:
368
+ encoding: US-ASCII
369
+ string: ''
370
+ headers:
371
+ User-Agent:
372
+ - Swipely/Docker-API 1.20.0
373
+ Content-Type:
374
+ - text/plain
375
+ response:
376
+ status:
377
+ code: 404
378
+ message:
379
+ headers:
380
+ Content-Type:
381
+ - text/plain; charset=utf-8
382
+ Date:
383
+ - Thu, 12 Mar 2015 21:37:20 GMT
384
+ Content-Length:
385
+ - '84'
386
+ body:
387
+ encoding: UTF-8
388
+ string: |
389
+ No such container: 072c18d4c2c3c02292deb361bd9aacacb35f6bcd2cecd26932dd288c2d7c953e
390
+ http_version:
391
+ recorded_at: Thu, 12 Mar 2015 21:37:22 GMT
392
+ recorded_with: VCR 2.9.3