Sha256: a547a9d3766c59363c482b90034668b42eef7d81e573cad39f736ea0291a93cc
Contents?: true
Size: 1.3 KB
Versions: 3
Compression:
Stored size: 1.3 KB
Contents
module Percheron module Actions class Purge include Base def initialize(container, delete_image: true) @container = container @delete_image = delete_image end def execute! results = [] results << stop! results << delete_container! results << delete_image! results.compact.empty? ? nil : container end private attr_reader :container, :delete_image def stop! Stop.new(container).execute! end def delete_image? delete_image && container.image_exists? && container.buildable? end def delete_container! return nil unless container.exists? $logger.info "Deleting '#{container.name}' container" container.docker_container.remove rescue Docker::Error::ConflictError => e $logger.error "Unable to delete '%s' container - %s" % [ container.name, e.inspect ] end def delete_image! return nil unless delete_image? $logger.info "Deleting '#{container.image_name}' image" container.image.remove rescue Docker::Error::ConflictError => e $logger.error "Unable to delete '%s' image - %s" % [ container.image_name, e.inspect ] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
percheron-0.7.2 | lib/percheron/actions/purge.rb |
percheron-0.7.1 | lib/percheron/actions/purge.rb |
percheron-0.7.0 | lib/percheron/actions/purge.rb |