beaker-docker 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b9f93de9358670645ea7e0c3bf982a7c822b8ca
4
- data.tar.gz: 19730ee76587c0e098504bf7bae15627c10f1603
3
+ metadata.gz: c08f5cd20c40f88ec243742f3471581e3bdedaac
4
+ data.tar.gz: a51dd89bab315c5bc3061e4c290335ca305c8932
5
5
  SHA512:
6
- metadata.gz: 78b6a3d9dda05f73f12861c8f3675647b3265428cfa634de30dbd89da20eac938353ecbf44c900079cdc1a7113a9f7304e13915c78c3f39426e1364be9fee0e8
7
- data.tar.gz: a88c7fe2fa9ec4655e629e1996310baa0154bfc8c69e7294f0111479c447f3ef878305df2cf14b8c4fcd36b272f761c06fa9181bfa330ed943e51a27f63eded5
6
+ metadata.gz: b475e8f7ce22f303fbe772749f0176511581ec9b84f3d116ad690fe2c5d318bc4b33b9f68186938bf5715b81e1a5f8b05f2a7833b6a3e469f7970eebfe5068b8
7
+ data.tar.gz: f7a3654d9252c82362d88be8dcbfa75aa3a546d01f156e65838d0eed1525a17e55c2fbd937c559fb5dba472fce1f02b27282daee917be49d183d52e03ed83c82
@@ -1,3 +1,3 @@
1
1
  module BeakerDocker
2
- VERSION = '0.5.3'
2
+ VERSION = '0.5.4'
3
3
  end
@@ -144,10 +144,9 @@ module Beaker
144
144
 
145
145
  container = find_container(host)
146
146
 
147
- # Provisioning - Only provision if:
148
- # - provisioning was explicitly requested via options, or
149
- # - the host's container can't be found via its name or ID
150
- if @options[:provision] || container.nil?
147
+ # Provisioning - Only provision if the host's container can't be found
148
+ # via its name or ID
149
+ if container.nil?
151
150
  unless host['mount_folders'].nil?
152
151
  container_opts['HostConfig'] ||= {}
153
152
  container_opts['HostConfig']['Binds'] = host['mount_folders'].values.map do |mount|
@@ -162,6 +161,10 @@ module Beaker
162
161
  end
163
162
  end
164
163
 
164
+ if host['docker_env']
165
+ container_opts['Env'] = host['docker_env']
166
+ end
167
+
165
168
  if host['docker_cap_add']
166
169
  container_opts['HostConfig']['CapAdd'] = host['docker_cap_add']
167
170
  end
@@ -172,6 +175,8 @@ module Beaker
172
175
 
173
176
  @logger.debug("Creating container from image #{image_name}")
174
177
  container = ::Docker::Container.create(container_opts)
178
+ else
179
+ host['use_existing_container'] = true
175
180
  end
176
181
 
177
182
  if container.nil?
@@ -279,38 +284,44 @@ module Beaker
279
284
  def cleanup
280
285
  @logger.notify "Cleaning up docker"
281
286
  @hosts.each do |host|
282
- container = find_container(host)
283
- if container
284
- @logger.debug("stop container #{container.id}")
285
- begin
286
- container.kill
287
- sleep 2 # avoid a race condition where the root FS can't unmount
288
- rescue Excon::Errors::ClientError => e
289
- @logger.warn("stop of container #{container.id} failed: #{e.response.body}")
290
- end
291
- @logger.debug("delete container #{container.id}")
292
- begin
293
- container.delete
294
- rescue Excon::Errors::ClientError => e
295
- @logger.warn("deletion of container #{container.id} failed: #{e.response.body}")
296
- end
297
- end
298
-
299
- # Do not remove the image if docker_preserve_image is set to true, otherwise remove it
300
- unless host['docker_preserve_image']
301
- image_id = host['docker_image_id']
302
-
303
- if image_id
304
- @logger.debug("deleting image #{image_id}")
287
+ # leave the container running if docker_preserve_container is set
288
+ # setting docker_preserve_container also implies docker_preserve_image
289
+ # is set, since you can't delete an image that's the base of a running
290
+ # container
291
+ unless host['docker_preserve_container']
292
+ container = find_container(host)
293
+ if container
294
+ @logger.debug("stop container #{container.id}")
305
295
  begin
306
- ::Docker::Image.remove(image_id)
296
+ container.kill
297
+ sleep 2 # avoid a race condition where the root FS can't unmount
307
298
  rescue Excon::Errors::ClientError => e
308
- @logger.warn("deletion of image #{image_id} failed: #{e.response.body}")
309
- rescue ::Docker::Error::DockerError => e
310
- @logger.warn("deletion of image #{image_id} caused internal Docker error: #{e.message}")
299
+ @logger.warn("stop of container #{container.id} failed: #{e.response.body}")
300
+ end
301
+ @logger.debug("delete container #{container.id}")
302
+ begin
303
+ container.delete
304
+ rescue Excon::Errors::ClientError => e
305
+ @logger.warn("deletion of container #{container.id} failed: #{e.response.body}")
306
+ end
307
+ end
308
+
309
+ # Do not remove the image if docker_preserve_image is set to true, otherwise remove it
310
+ unless host['docker_preserve_image']
311
+ image_id = host['docker_image_id']
312
+
313
+ if image_id
314
+ @logger.debug("deleting image #{image_id}")
315
+ begin
316
+ ::Docker::Image.remove(image_id)
317
+ rescue Excon::Errors::ClientError => e
318
+ @logger.warn("deletion of image #{image_id} failed: #{e.response.body}")
319
+ rescue ::Docker::Error::DockerError => e
320
+ @logger.warn("deletion of image #{image_id} caused internal Docker error: #{e.message}")
321
+ end
322
+ else
323
+ @logger.warn("Intended to delete the host's docker image, but host['docker_image_id'] was not set")
311
324
  end
312
- else
313
- @logger.warn("Intended to delete the host's docker image, but host['docker_image_id'] was not set")
314
325
  end
315
326
  end
316
327
  end
@@ -498,6 +509,7 @@ module Beaker
498
509
 
499
510
  return container unless container.nil?
500
511
  @logger.debug("Existing container not found")
512
+ return nil
501
513
  end
502
514
 
503
515
  # return true if we are inside a docker container
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rishi Javia, Kevin Imber, Tony Vu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-06 00:00:00.000000000 Z
11
+ date: 2019-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec